{"Entry":{"collection":"guc","key":"checkpoint_warning","name":"checkpoint_warning","aliases":[],"metadata":{"baseline":true,"boot_human":"Not specified","boot_val":null,"category":"Write-Ahead Log / Checkpoints","category_zh":"","changed_in":["15","18"],"changes":[{"documentation_changed":true,"fields":{},"from":"7.4","status":"changed","to":"8.0"},{"documentation_changed":true,"fields":{},"from":"8.0","status":"changed","to":"8.1"},{"documentation_changed":true,"fields":{},"from":"8.1","status":"changed","to":"8.2"},{"documentation_changed":true,"fields":{},"from":"9.2","status":"changed","to":"9.3"},{"documentation_changed":true,"fields":{},"from":"9.4","status":"changed","to":"9.5"},{"documentation_changed":true,"fields":{},"from":"10","status":"changed","to":"11"},{"documentation_changed":true,"fields":{},"from":"11","status":"changed","to":"12"},{"documentation_changed":false,"fields":{"extra_desc":{"from":"Write a message to the server log if checkpoints caused by the filling of checkpoint segment files happens more frequently than this number of seconds. Zero turns off the warning.","to":"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. Zero turns off the warning."},"short_desc":{"from":"Enables warnings if checkpoint segments are filled more frequently than this.","to":"Sets the maximum time before warning if checkpoints triggered by WAL volume happen too frequently."}},"from":"14","status":"changed","to":"15"},{"documentation_changed":false,"fields":{"extra_desc":{"from":"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. Zero turns off the warning.","to":"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."}},"from":"17","status":"changed","to":"18"}],"content_hash":"6a68d2a6c9dda2ddc4cad78fa1f492571f248c704341c8f7bbc8c3c044517d92","context":"","default_changed_in":[],"default_history":[{"from":"9.0","to":"19","value":"30 s"}],"editorial":{"advice":{"olap":"Provision WAL, archive bandwidth, and recovery I/O for bulk-load peaks. Coordinate load pacing and checkpoints when reducing spikes; never break the recovery chain for throughput.","oltp":"Establish durability and recovery objectives first, then tune checkpoint_warning from WAL rate, flush latency, checkpoints, and peak pg_wal usage. Validate every change with crash/recovery and archive monitoring.","small":"Start from safe defaults and set explicit alerts for limited disk capacity. Do not disable durability or break the recovery chain merely to save modest I/O."},"mechanism":["Sets the maximum time before warning if checkpoints triggered by WAL volume happen too frequently. A configuration reload applies a new value; existing work already in flight is not retroactively changed.","This parameter only emits a log warning when WAL-volume checkpoints occur closer together than the threshold. It does not delay checkpoints; frequent warnings normally point to max_wal_size being too small for the WAL generation rate.","Monitor and change checkpoint_warning together with checkpoint_flush_after, checkpoint_timeout, checkpoint_completion_target. Validate on the relevant server role and real workload, then use its sighup context to choose session change, reload, or restart; a historical boot default is not the current effective value."],"pitfalls":["Treating the warning threshold as a control that delays or throttles checkpoints.","Setting zero and silencing evidence of WAL-volume checkpoints.","Raising the threshold instead of investigating WAL rate, max_wal_size, and requested-checkpoint frequency.","Setting checkpoint_warning above checkpoint_timeout and expecting time-based checkpoints to produce this warning."],"references":[{"title":"PostgreSQL 19 Beta 4: checkpoint_warning","url":"https://www.postgresql.org/docs/19/runtime-config-wal.html#GUC-CHECKPOINT-WARNING"},{"title":"PostgreSQL 19 release notes","url":"https://www.postgresql.org/docs/19/release-19.html"}],"related":["checkpoint_flush_after","checkpoint_timeout","checkpoint_completion_target","max_wal_size","min_wal_size","archive_cleanup_command"],"summary":"checkpoint_warning — Sets the maximum time before warning if checkpoints triggered by WAL volume happen too frequently. Observed in PG9.0–19 Beta 4; its last measured boot default is 30 s in PG19 Beta 4, with sighup context. This is a beta-snapshot fact and can change before PostgreSQL 19 GA."},"enumvals":[],"first_version":"7.4","group":"Write-Ahead Log","group_slug":"wal","imported_at":"2026-09-27T17:57:30.937497+08:00","intro_commit":{},"key":"checkpoint_warning","last_version":"20","max_val":"","min_val":"","name":"checkpoint_warning","position":59,"present_in":["7.4","8.0","8.1","8.2","8.3","8.4","9.0","9.1","9.2","9.3","9.4","9.5","9.6","10","11","12","13","14","15","16","17","18","19","20"],"short_desc":"Write a message to the server log if checkpoints caused by the filling of WAL segment files happen closer together than this amount of time (which suggests that max_wal_size ought to be raised).","short_desc_zh":"","source_rev":"english-manuals:7dd18de8704cb25c36b30e5ae5c6891f6d27ac8eb6e7c0ac3bc488ea8525653c","unit":"","vartype":"integer"}},"Definition":{"Collection":"guc","Key":"checkpoint_warning","SourceDatabase":"center","Version":"18","SourceTable":"guc","SourceKey":"checkpoint_warning","SourceRevision":"english-manuals:7dd18de8704cb25c36b30e5ae5c6891f6d27ac8eb6e7c0ac3bc488ea8525653c","Facts":{"boot_val":"30","category":"Write-Ahead Log / Checkpoints","context":"sighup","description":"Write a message to the server log if checkpoints caused by the filling of WAL segment files happen closer together than this amount of time (which suggests that max_wal_size ought to be raised). 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. This parameter can only be set in the postgresql.conf file or on the server command line.","doc":{"anchor":"GUC-CHECKPOINT-WARNING","file":"runtime-config-wal.html","lang":"en","sha256":"d2646404a06e8f7ac655204b4f28c049ae8f3fd4f2272db080fcefa2c4af0763","slug":"18"},"documented":true,"enumvals":null,"extra_desc":"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.","lang":"en","max_val":"2147483647","metadata_version":"18","min_val":"0","name":"checkpoint_warning","short_desc":"Sets the maximum time before warning if checkpoints triggered by WAL volume happen too frequently.","source":"pg-settings-source-snapshot","unit":"s","vartype":"integer"},"ManualEvidence":{"doc":{"anchor":"GUC-CHECKPOINT-WARNING","file":"runtime-config-wal.html","lang":"en","sha256":"d2646404a06e8f7ac655204b4f28c049ae8f3fd4f2272db080fcefa2c4af0763","slug":"18"}},"MeasuredEvidence":{"metadata_version":"18"}},"Text":{"Collection":"guc","Key":"checkpoint_warning","SourceDatabase":"center","Version":"18","Locale":"en","Title":"checkpoint_warning","Summary":"Write a message to the server log if checkpoints caused by the filling of WAL segment files happen closer together than this amount of time (which suggests that max_wal_size ought to be raised). 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. This parameter can only be set in the postgresql.conf file or on the server command line.","BodyHTML":"\u003cp\u003eWrite a message to the server log if checkpoints caused by the filling of WAL segment files happen closer together than this amount of time (which suggests that max_wal_size ought to be raised). 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. This parameter can only be set in the postgresql.conf file or on the server command line.\u003c/p\u003e","SourceRevision":"english-manuals:7dd18de8704cb25c36b30e5ae5c6891f6d27ac8eb6e7c0ac3bc488ea8525653c","ContentHash":"ee6f4c2dc2da332e7c86d37b97c5251a8247176a6e839a95f324e1ef2d854d0f","Payload":{"description":"Write a message to the server log if checkpoints caused by the filling of WAL segment files happen closer together than this amount of time (which suggests that max_wal_size ought to be raised). 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. This parameter can only be set in the postgresql.conf file or on the server command line."}},"RequestedLocale":"zh-Hans","Fallback":true,"Versions":["10","11","12","13","14","15","16","17","18","19","20","7.4","8.0","8.1","8.2","8.3","8.4","9.0","9.1","9.2","9.3","9.4","9.5","9.6"],"Locales":["en"],"Signatures":null,"Spellings":null,"SQLState":null,"Evidence":null}
