我正在使用 Postgresql-11,使用传统的 HDD 作为物理存储设备。
我需要优化写作性能。
我已将 -1 更改wal_buffers
为 512MB,这意味着wal_buffers
不再使用shared_buffers
. 我对吗?
我想知道它是否可以提高写入性能以扩大shared_buffers
。在我看来,它仅用于查询?
当前值为shared_buffers
2GB,我的RAM是8GB。我想将它更改为 4GB。谢谢!
我正在使用 Postgresql-11,使用传统的 HDD 作为物理存储设备。
我需要优化写作性能。
我已将 -1 更改wal_buffers
为 512MB,这意味着wal_buffers
不再使用shared_buffers
. 我对吗?
我想知道它是否可以提高写入性能以扩大shared_buffers
。在我看来,它仅用于查询?
当前值为shared_buffers
2GB,我的RAM是8GB。我想将它更改为 4GB。谢谢!
一般来说,这不是一个非常可行的策略,但在某些特定情况下它可以工作,例如,如果在批量插入期间需要维护的索引页的总大小 >2GB 但 <4GB。
因为 PostgreSQL 不使用直接 IO,而是通过正常的内核调用读取页面,这意味着页面在被读入 shared_buffers 之前首先被读入文件系统缓存。因此,通常在 8GB 中的 4GB 时,两个缓存将是“双缓冲”,从而降低了它们的有效性。如果我想走高 shared_buffers 路线,我会将其设置为 6 到 7GB(或 7.5,但不会将 wal_buffers 设置得如此之高——我对此也有疑问),而不是 4GB。