A server parameter adding a delay before WAL flush

commit_delay is a configuration parameter for adding a time delay before a WAL flush is initiated.

commit_delay was added in PostgreSQL 7.1.

Default value

The default value for commit_delay is: 0 (disabled).


NOTE: commit_delay is generally not regarded as an effective or easy parameter to tune, and may only bring performance benefits in certain very specific situations, while risking an overall performance slowdown.

If set to a non-zero value, commit_delay makes it possible for a larger number of transactions to commit via a single WAL flush, improving system throughput. However it also increases latency by up to the specified value for each WAL flush.

commit_delay is only of practical use if mulitple transactions (at least the number specified by commit_siblings, default 5) become ready to commit within the interval specified.

Change history


GUC configuration item, Transactions, WAL

See also

commit_siblings, pg_test_fsync, synchronous_commit