Timeout: CheckpointWriteDelay
执行检查点时,在两次写入之间等待。
PostgreSQL 等待事件档案
类别Timeout
事件
CheckpointWriteDelay
版本PG 14-18
证据2 个源码位置
官方描述译文
执行检查点时,在两次写入之间等待。
| PG 13 | PG 14 | PG 15 | PG 16 | PG 17 | PG 18 |
|---|---|---|---|---|---|
| — | ✓ | ✓ | ✓ | ✓ | ✓ |
触发机制
WAIT_EVENT_CHECKPOINT_WRITE_DELAY 位于 src/backend/postmaster/checkpointer.c:814,是经 grep 核验的报告路径。公共身份/资源映射位于 src/backend/utils/activity/wait_event_names.txt:176。探针覆盖的操作是:执行检查点时,在两次写入之间等待。CheckpointWriteDelay 路径有意等待计时器、重试间隔、节流或安全退避;latch 超时后才重新评估工作。
正常还是麻烦?
- 正常: 当配置策略是有意的,而且有效工作按预期速率推进时,这项等待正常。
- 需要调查: 策略导致维护、恢复、备份或延迟目标无法达成,或者 spin delay 持续时,应当调查。
诊断 SQL
正在等待 Timeout/CheckpointWriteDelay 的会话
当前 Timeout 等待分布
这些会话的锁与关系上下文
处置建议
- 确认拥有该计时器的 GUC 或函数。
- 比较有效工作量与延迟时间。
- 先检查它原本要控制的 CPU、I/O 与持久性压力,再调整策略。
源码证据
- PostgreSQL 18.6 · src/backend/postmaster/checkpointer.c:814 —
WAIT_EVENT_CHECKPOINT_WRITE_DELAY - PostgreSQL 18.6 · src/backend/utils/activity/wait_event_names.txt:176 —
CHECKPOINT_WRITE_DELAY
关联控制项与信号
- GUC: [guc:checkpoint_timeout] · [guc:max_wal_size]
- 指标: [metric:waiting_sessions] · [metric:wait_event_share] · [metric:checkpoint_time]