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