类型: | integer |
默认: | 64 (512kB) |
最低限度: | 0 (0kB) |
最大: | 256 (2MB) |
单元: | 8kB |
上下文: | sighup |
重新开始: | false |
以来: | 9.6 |
只要后台写入的数据超过这个数量,尝试强制 OS 把这些写发送到底层存储上。这样做将限制内核页缓存中脏数据的量,降低了在检查点末尾发出一个 fsync 时或者 OS 在后台大批量写回数据时卡住的可能性。 那常常会导致大幅度压缩的事务延迟,但是也有一些情况(特别是负载超过shared_buffers但小于 OS 页面高速缓存)的性能会降低。这种设置可能会在某些平台上没有效果。 如果指定值时没有单位,则以块为单位,即为BLCKSZ
字节,通常为8kB.合法的范围在0
(禁用受控写回)和2MB
之间。Linux 上的默认值是512kB
,其他平台上是0
(如果BLCKSZ
不是8kB,则默认值和最大值会按比例缩放至这个值)。这个参数只能在postgresql.conf文件中或者服务器命令行上设置。
建议 [EN]
Unless you have time to tune memory flushing behavior and test for improvements/regressions