1. wal buffers
虽然有关文档中所推荐 wal_buffers的64KB大小的默认值只要在没有哪个单独的交易能够超过该值的情况下已经足够,而在实践中,深度写入操作的基准评测处于最佳性能时,该值要比用户预计的值要高,至少1MB以上。惟一的缺点是提高了共享缓存的使用,并且在这里没有超过一个WAL段需要缓存,鉴于当今服务器内存都已经很大,则只需将该值设置如下。
wal buffers.16MB
接下来就可以不用担心潜在的瓶颈,也不需要进一步的优化。只有内存较小时才需要考虑设置成较低的值。
2.wal sync_method
wal_syncmethod 的目的之一就是要优化这种缓存行为。
这里的默认行为和其他大多数选项有些不同。如果服务器源码是编译完成的,需要考虑一系列可能的写方法。其中被认为是最有效的将随后被编译成为默认值。然而这个值在initdb 时不写到postgresgl.conf中,使它有别于其他那些自动检测、平台特定的值例圳shared buffers.
在调整任何东西之前,应该使用SHOW检查所使用的平台下最快的安全方法,下面是Linux的一个示例。
postgres=# show wal sync method;
wal sync method
--------------------
fdatasyne
在Windows和MacOSX平台上,有一个特别的设置,用以确保操作系统会清除任何回写缓存。在这些平台上使用的安全值如下。
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




