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