WAL & checkpointsReload, no restartdefault 5 min

checkpoint_timeout

Sets the maximum time between automatic WAL checkpoints.

How you change it

Reload, no restart

Defaults and ranges on this page were read from pg_settings on live PostgreSQL 18.4. Treat older majors as needing their own check before you copy a value.

What this means

The maximum time between automatic checkpoints. Longer intervals mean fewer checkpoints, less full-page-write amplification, and smoother I/O, but a longer replay time after a crash.

When it matters

Raise from the short default on busy systems, in step with a larger max_wal_size.

Default5 min
Range30 – 86400
Typeinteger
Change scopeReload, no restart
CategoryWAL & checkpoints
Check the current value
SHOW checkpoint_timeout;

Tradeoffs

  • Too short: frequent checkpoints amplify writes via full-page images.
  • Too long: crash recovery replays more WAL and takes longer.
  • Pair with checkpoint_completion_target to spread the flush over the interval.
PostgreSQL manual: checkpoint_timeout

← All GUCs · Glossary · Runbooks