DB Internals AtlasPostgreSQL 18.6 Home About

Parameter · Write-Ahead Log / Checkpoints

checkpoint_warning

Sets the maximum time before warning if checkpoints triggered by WAL volume happen too frequently. Write a message to the server log if checkpoints caused by the filling of WAL segment files happen more frequently than this amount of time. 0 disables the warning.

  • Default: 30s
  • Type: integer (s)
  • Range: 0 … max (2147483647)
  • Applies: Reload

In plain words

If checkpoints are happening because WAL fills up too quickly, not because of the timer, the server is writing more than max_wal_size allows for comfortably. checkpoint_warning makes PostgreSQL write a hint in the log when two such checkpoints happen less than this many seconds apart (default 30 s).

For DBAs and operators

Only WAL-triggered checkpoints count (not timed, manual or shutdown ones). The message is:

LOG: checkpoints are occurring too frequently (12 seconds apart)HINT: Consider increasing the configuration parameter "max_wal_size".

0 disables the warning. It does not change behaviour, only logging. Even without the warning, compare num_requested to num_timed in pg_stat_checkpointer and look for checkpoint starting: wal in the log (with log_checkpoints = on, the default since PostgreSQL 15).

How to change it

Change in postgresql.conf or ALTER SYSTEM, then run SELECT pg_reload_conf().

See it in context

Checkpoints Checkpointer

Related parameters

max_wal_size checkpoint_timeout log_checkpoints

All Write-Ahead Log parameters