タイプ: integer
デフォルト: 0 (0kB)
分: 0 (0kB)
最大: 256 (2MB)
単位: 8kB
コンテキスト: user
再起動: false
以来: 9.6

backend_flush_afterバイトが単一のバックエンドによって書き込まれる度に、OSが記憶装置に書き込むことを強制します。このことにより、カーネルのページキャッシュが持つダーティデータの量を一定量に制限し、チェックポイントの最後にfsyncが実行される際、あるいはバックグラウンドで実行される大きなバッチの中でOSがデータを書き出す際に性能の急激な低下を招く可能性を減らします。多くの場合これによってトランザクションの遅延が大幅に少なくなりますが、あるケース、特にワークロードがshared_buffersよりも大きく、OSのページキャッシュよりも小さい時には性能が低下するかもしれません。この設定が無効なプラットフォームがあります。この値が単位なしで指定された場合は、ブロック単位であるとみなします。すなわち、BLCKSZバイト、一般的には8kBです。有効な設定値は、この強制書き込み機能が無効になる0から、2MBまでです。デフォルト値は0です(すなわち書き出し制御を行いません)。(BLCKSZが8kbでなければ、最大値がBLCKSZに比例して変更されます。)

推奨事項 [EN]

Unless you have time to tune memory flushing behavior and test for improvements/regressions

件のコメント