Only one checkpoint can run at a given time, so if the previous checkpoint is still in progress, the next checkpoint has to wait until the first one is done. The second checkpoint should begin soon after the previous one is done.

The second checkpoint might have less work to do, but buffers can become dirty again while the first checkpoint is in progress, so the second checkpoint won't have nothing to do.

PostgreSQL won't adjust checkpoint_timeout, but if more than max_wal_size WAL has been written since the latest checkpoint, another checkpoint is started. The idea is to keep crash recovery time limited.

Answer from Laurenz Albe on Stack Exchange
🌐
PostgreSQL
postgresqlco.nf › en › doc › param › checkpoint_timeout
PostgreSQL Documentation: checkpoint_timeout parameter
checkpoint_timeout: Min: 30 (30s), Max: 86400 (1d), Default: 300 (5min), Context: sighup, Needs restart: false • Sets the maximum time between automatic WAL checkpoints.
Discussions

how to evaluate checkpoints of postgreSQL - Stack Overflow
I'm newer on postGreSQL. I'm using PG15 on linux server, the server memory is 32G. the checkpoint_timeout,sharebuffer, wal etc are using default setting on pg_settings. that means checkpoint_timeou... More on stackoverflow.com
🌐 stackoverflow.com
nwo postgres container: ability to setup checkpoint_timeout
This is to avoid connection disruption during a checkpoint for long running sessions. More on github.com
🌐 github.com
1
November 23, 2025
How to handle large peaks in wal size?
You kind of answered your own question, increase your max_wal_size. I would also increase my checkpoint_timeout to something more like 1h. More on reddit.com
🌐 r/PostgreSQL
4
1
June 27, 2020
Session Timeout : r/checkpoint
🌐 r/checkpoint
🌐
Oracle
docs.oracle.com › en › database › oracle › oracle-database › 19 › refrn › LOG_CHECKPOINT_TIMEOUT.html
LOG_CHECKPOINT_TIMEOUT
February 23, 2026 - LOG_CHECKPOINT_TIMEOUT specifies (in seconds) the amount of time that has passed since the incremental checkpoint at the position where the last write to the redo log (sometimes called the tail of the log) occurred.
🌐
Thewordtim5times
thewordtim5times.com › blog › 7
Postgres checkpoints and how to tune them - Tim Swyzen
October 4, 2023 - Increasing the max_wal_size is safe to do because we have checkpoint_timeouts. Checkpoint timeout tells postgres how often a checkpoint should be triggered.
🌐
EnterpriseDB
enterprisedb.com › blog › basics-tuning-checkpoints
Basics of Tuning Checkpoints | EDB
July 11, 2024 - This is a bit tricky, because checkpoint_timeout is a limit on how long it took to generate the WAL, not a limit on the recovery time. However, while the WAL is usually generated by multiple processes (backends running DML), recovery is performed by a single process - therefore limited to a single CPU, can stall on I/O, etc.
🌐
PostgreSQL
postgresql.org › docs › current › wal-configuration.html
PostgreSQL: Documentation: 18: 28.5. WAL Configuration
1 month ago - A checkpoint is begun every checkpoint_timeout seconds, or if max_wal_size is about to be exceeded, whichever comes first. The default settings are 5 minutes and 1 GB, respectively.
Find elsewhere
🌐
PostgreSQL
postgresql.org › docs › current › runtime-config-wal.html
PostgreSQL: Documentation: 18: 19.5. Write Ahead Log
1 month ago - If this value is specified without units, it is taken as seconds. The default is 30 seconds (30s). Zero disables the warning. No warnings will be generated if checkpoint_timeout is less than checkpoint_warning.
🌐
pgPedia
pgpedia.info › c › checkpoint_timeout.html
checkpoint_timeout - pgPedia - a PostgreSQL Encyclopedia
checkpoint_timeout is a configuration parameter defining the maximum time between automatic WAL checkpoints.
🌐
O'Reilly
oreilly.com › library › view › postgresql-10-high › 9781788474481 › 6d40f9e3-3367-49cb-a054-2bf75d3dd3dd.xhtml
checkpoint_timeout - PostgreSQL 10 High Performance - Third Edition [Book]
April 30, 2018 - checkpoint_timeout The default for this setting of 5 minutes is fine for most installations. If your system isn't able to keep up with writes and you've already increased... - Selection from PostgreSQL 10 High Performance - Third Edition [Book]
Author   Enrico Pirozzi
Published   2018
Pages   508
🌐
Medium
medium.com › @wasiualhasib › checkpoint-process-in-postgresql-c5f362a5e296
Checkpoint Process In PostgreSQL. Checkpoint Process | by Sheikh Wasiu Al Hasib | Medium
August 2, 2024 - Checkpoint Process In PostgreSQL Checkpoint Process 1. Checkpoint Timeout: — `checkpoint_timeout` specifies the maximum time interval between automatic checkpoints. In this example, it is set to …
🌐
Stack Overflow
stackoverflow.com › questions › 78823619 › how-to-evaluate-checkpoints-of-postgresql
how to evaluate checkpoints of postgreSQL - Stack Overflow
I'm newer on postGreSQL. I'm using PG15 on linux server, the server memory is 32G. the checkpoint_timeout,sharebuffer, wal etc are using default setting on pg_settings. that means checkpoint_timeout is 5 mins.
🌐
GitHub
github.com › hyperledger-labs › fabric-smart-client › issues › 1087
nwo postgres container: ability to setup checkpoint_timeout · Issue #1087 · hyperledger-labs/fabric-smart-client
November 23, 2025 - nwo postgres container: ability ... · on Nov 23, 2025 · Issue body actions · This is to avoid connection disruption during a checkpoint for long running sessions....
Author   hyperledger-labs
🌐
CYBERTEC PostgreSQL
cybertec-postgresql.com › home › checkpoint distance and amount of wal
Checkpoint distance and amount of WAL
January 10, 2017 - # checkpoint_timeout = 5min # range 30s-1h # max_wal_size = 1GB # min_wal_size = 80MB
🌐
Apache
nightlies.apache.org › flink › flink-docs-master › docs › dev › datastream › fault-tolerance › checkpointing
Checkpointing | Apache Flink
checkpoint timeout: The time after which a checkpoint-in-progress is aborted, if it did not complete by then.
🌐
IBM
ibm.com › docs › en › iis › 11.5.0
Checkpoint timeout
We cannot provide a description for this page right now