checkpoint_flush_after

类型: 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

条评论