A parameter specifying how much time between checkpoints can be spent completing a checkpoint

checkpoint_completion_target is a configuration parameter specifying the fraction of the time between checkpoints which can elapse before a checkpoint is completed.

checkpoint_completion_target was added in PostgreSQL 8.3.


checkpoint_completion_target influences the "intensity" of I/O operations performed during a checkpoint. The more these can be spread out, the less risk there is of an I/O spike; consequently for a long time the general recommendation has been to set checkpoint_completion_target to 0.9 (the default from PostgreSQL 14) rather than the original default of 0.5.

Default value

The default value for checkpoint_completion_target is:

Change history


Checkpoints, GUC configuration item, WAL

See also

checkpoint, checkpoint_timeout, checkpoint_flush_after, min_wal_size, max_wal_size