这是本节的多页打印视图。 .
PostgreSQL 等待事件大典
- 1: 等待事件排查总图
- 2: 版本矩阵
- 3: 值班术语表
-
4: Lock 等待
- 4.1: Lock: advisory
- 4.2: Lock: applytransaction
- 4.3: Lock: extend
- 4.4: Lock: frozenid
- 4.5: Lock: object
- 4.6: Lock: page
- 4.7: Lock: relation
- 4.8: Lock: spectoken
- 4.9: Lock: transactionid
- 4.10: Lock: tuple
- 4.11: Lock: userlock
- 4.12: Lock: virtualxid
-
5: LWLock 等待
- 5.1: LWLock: AddinShmemInit
- 5.2: LWLock: AioUringCompletion
- 5.3: LWLock: AioWorkerSubmissionQueue
- 5.4: LWLock: AutoFile
- 5.5: LWLock: Autovacuum
- 5.6: LWLock: AutovacuumSchedule
- 5.7: LWLock: BackgroundWorker
- 5.8: LWLock: BtreeVacuum
- 5.9: LWLock: BufferContent
- 5.10: LWLock: BufferMapping
- 5.11: LWLock: Checkpoint
- 5.12: LWLock: CheckpointerComm
- 5.13: LWLock: CommitTs
- 5.14: LWLock: CommitTsBuffer
- 5.15: LWLock: CommitTsSLRU
- 5.16: LWLock: ControlFile
- 5.17: LWLock: DSMRegistry
- 5.18: LWLock: DSMRegistryDSA
- 5.19: LWLock: DSMRegistryHash
- 5.20: LWLock: DynamicSharedMemoryControl
- 5.21: LWLock: InjectionPoint
- 5.22: LWLock: LockFastPath
- 5.23: LWLock: LockManager
- 5.24: LWLock: LogicalRepLauncherDSA
- 5.25: LWLock: LogicalRepLauncherHash
- 5.26: LWLock: LogicalRepWorker
- 5.27: LWLock: MultiXactGen
- 5.28: LWLock: MultiXactMemberBuffer
- 5.29: LWLock: MultiXactMemberSLRU
- 5.30: LWLock: MultiXactOffsetBuffer
- 5.31: LWLock: MultiXactOffsetSLRU
- 5.32: LWLock: MultiXactTruncation
- 5.33: LWLock: NotifyBuffer
- 5.34: LWLock: NotifyQueue
- 5.35: LWLock: NotifyQueueTail
- 5.36: LWLock: NotifySLRU
- 5.37: LWLock: OidGen
- 5.38: LWLock: OldSnapshotTimeMap
- 5.39: LWLock: ParallelAppend
- 5.40: LWLock: ParallelBtreeScan
- 5.41: LWLock: ParallelHashJoin
- 5.42: LWLock: ParallelQueryDSA
- 5.43: LWLock: ParallelVacuumDSA
- 5.44: LWLock: PerSessionDSA
- 5.45: LWLock: PerSessionRecordType
- 5.46: LWLock: PerSessionRecordTypmod
- 5.47: LWLock: PerXactPredicateList
- 5.48: LWLock: PgStatsDSA
- 5.49: LWLock: PgStatsData
- 5.50: LWLock: PgStatsHash
- 5.51: LWLock: PredicateLockManager
- 5.52: LWLock: ProcArray
- 5.53: LWLock: RelCacheInit
- 5.54: LWLock: RelationMapping
- 5.55: LWLock: ReplicationOrigin
- 5.56: LWLock: ReplicationOriginState
- 5.57: LWLock: ReplicationSlotAllocation
- 5.58: LWLock: ReplicationSlotControl
- 5.59: LWLock: ReplicationSlotIO
- 5.60: LWLock: SInvalRead
- 5.61: LWLock: SInvalWrite
- 5.62: LWLock: SerialBuffer
- 5.63: LWLock: SerialControl
- 5.64: LWLock: SerialSLRU
- 5.65: LWLock: SerializableFinishedList
- 5.66: LWLock: SerializablePredicateList
- 5.67: LWLock: SerializableXactHash
- 5.68: LWLock: SharedTidBitmap
- 5.69: LWLock: SharedTupleStore
- 5.70: LWLock: ShmemIndex
- 5.71: LWLock: SubtransBuffer
- 5.72: LWLock: SubtransSLRU
- 5.73: LWLock: SyncRep
- 5.74: LWLock: SyncScan
- 5.75: LWLock: TablespaceCreate
- 5.76: LWLock: TwoPhaseState
- 5.77: LWLock: WALBufMapping
- 5.78: LWLock: WALInsert
- 5.79: LWLock: WALSummarizer
- 5.80: LWLock: WALWrite
- 5.81: LWLock: WaitEventCustom
- 5.82: LWLock: WrapLimitsVacuum
- 5.83: LWLock: XactBuffer
- 5.84: LWLock: XactSLRU
- 5.85: LWLock: XactTruncation
- 5.86: LWLock: XidGen
-
6: I/O 等待
- 6.1: IO: AioIoCompletion
- 6.2: IO: AioIoUringExecution
- 6.3: IO: AioIoUringSubmit
- 6.4: IO: BasebackupRead
- 6.5: IO: BasebackupSync
- 6.6: IO: BasebackupWrite
- 6.7: IO: BuffileRead
- 6.8: IO: BuffileTruncate
- 6.9: IO: BuffileWrite
- 6.10: IO: ControlFileRead
- 6.11: IO: ControlFileSync
- 6.12: IO: ControlFileSyncUpdate
- 6.13: IO: ControlFileWrite
- 6.14: IO: ControlFileWriteUpdate
- 6.15: IO: CopyFileCopy
- 6.16: IO: CopyFileRead
- 6.17: IO: CopyFileWrite
- 6.18: IO: DataFileExtend
- 6.19: IO: DataFileFlush
- 6.20: IO: DataFileImmediateSync
- 6.21: IO: DataFilePrefetch
- 6.22: IO: DataFileRead
- 6.23: IO: DataFileSync
- 6.24: IO: DataFileTruncate
- 6.25: IO: DataFileWrite
- 6.26: IO: DsmAllocate
- 6.27: IO: DsmFillZeroWrite
- 6.28: IO: LockFileAddtodatadirRead
- 6.29: IO: LockFileAddtodatadirSync
- 6.30: IO: LockFileAddtodatadirWrite
- 6.31: IO: LockFileCreateRead
- 6.32: IO: LockFileCreateSync
- 6.33: IO: LockFileCreateWrite
- 6.34: IO: LockFileRecheckdatadirRead
- 6.35: IO: LogicalChangesRead
- 6.36: IO: LogicalChangesWrite
- 6.37: IO: LogicalRewriteCheckpointSync
- 6.38: IO: LogicalRewriteMappingSync
- 6.39: IO: LogicalRewriteMappingWrite
- 6.40: IO: LogicalRewriteSync
- 6.41: IO: LogicalRewriteTruncate
- 6.42: IO: LogicalRewriteWrite
- 6.43: IO: LogicalSubxactRead
- 6.44: IO: LogicalSubxactWrite
- 6.45: IO: RelationMapRead
- 6.46: IO: RelationMapReplace
- 6.47: IO: RelationMapSync
- 6.48: IO: RelationMapWrite
- 6.49: IO: ReorderBufferRead
- 6.50: IO: ReorderBufferWrite
- 6.51: IO: ReorderLogicalMappingRead
- 6.52: IO: ReplicationSlotRead
- 6.53: IO: ReplicationSlotRestoreSync
- 6.54: IO: ReplicationSlotSync
- 6.55: IO: ReplicationSlotWrite
- 6.56: IO: SlruFlushSync
- 6.57: IO: SlruRead
- 6.58: IO: SlruSync
- 6.59: IO: SlruWrite
- 6.60: IO: SnapbuildRead
- 6.61: IO: SnapbuildSync
- 6.62: IO: SnapbuildWrite
- 6.63: IO: TimelineHistoryFileSync
- 6.64: IO: TimelineHistoryFileWrite
- 6.65: IO: TimelineHistoryRead
- 6.66: IO: TimelineHistorySync
- 6.67: IO: TimelineHistoryWrite
- 6.68: IO: TwophaseFileRead
- 6.69: IO: TwophaseFileSync
- 6.70: IO: TwophaseFileWrite
- 6.71: IO: VersionFileSync
- 6.72: IO: VersionFileWrite
- 6.73: IO: WalBootstrapSync
- 6.74: IO: WalBootstrapWrite
- 6.75: IO: WalCopyRead
- 6.76: IO: WalCopySync
- 6.77: IO: WalCopyWrite
- 6.78: IO: WalInitSync
- 6.79: IO: WalInitWrite
- 6.80: IO: WalRead
- 6.81: IO: WalSummaryRead
- 6.82: IO: WalSummaryWrite
- 6.83: IO: WalSync
- 6.84: IO: WalSyncMethodAssign
- 6.85: IO: WalWrite
- 6.86: IO: WalsenderTimelineHistoryRead
-
7: IPC 等待
- 7.1: IPC: AppendReady
- 7.2: IPC: ArchiveCleanupCommand
- 7.3: IPC: ArchiveCommand
- 7.4: IPC: BackendTermination
- 7.5: IPC: BackupWaitWalArchive
- 7.6: IPC: BgworkerShutdown
- 7.7: IPC: BgworkerStartup
- 7.8: IPC: BtreePage
- 7.9: IPC: BufferIo
- 7.10: IPC: CheckpointDelayComplete
- 7.11: IPC: CheckpointDelayStart
- 7.12: IPC: CheckpointDone
- 7.13: IPC: CheckpointStart
- 7.14: IPC: ExecuteGather
- 7.15: IPC: HashBatchAllocate
- 7.16: IPC: HashBatchElect
- 7.17: IPC: HashBatchLoad
- 7.18: IPC: HashBuildAllocate
- 7.19: IPC: HashBuildElect
- 7.20: IPC: HashBuildHashInner
- 7.21: IPC: HashBuildHashOuter
- 7.22: IPC: HashGrowBatchesDecide
- 7.23: IPC: HashGrowBatchesElect
- 7.24: IPC: HashGrowBatchesFinish
- 7.25: IPC: HashGrowBatchesReallocate
- 7.26: IPC: HashGrowBatchesRepartition
- 7.27: IPC: HashGrowBucketsElect
- 7.28: IPC: HashGrowBucketsReallocate
- 7.29: IPC: HashGrowBucketsReinsert
- 7.30: IPC: LogicalApplySendData
- 7.31: IPC: LogicalParallelApplyStateChange
- 7.32: IPC: LogicalSyncData
- 7.33: IPC: LogicalSyncStateChange
- 7.34: IPC: MessageQueueInternal
- 7.35: IPC: MessageQueuePutMessage
- 7.36: IPC: MessageQueueReceive
- 7.37: IPC: MessageQueueSend
- 7.38: IPC: MultixactCreation
- 7.39: IPC: ParallelBitmapScan
- 7.40: IPC: ParallelCreateIndexScan
- 7.41: IPC: ParallelFinish
- 7.42: IPC: ProcSignalBarrier
- 7.43: IPC: ProcarrayGroupUpdate
- 7.44: IPC: Promote
- 7.45: IPC: RecoveryConflictSnapshot
- 7.46: IPC: RecoveryConflictTablespace
- 7.47: IPC: RecoveryEndCommand
- 7.48: IPC: RecoveryPause
- 7.49: IPC: ReplicationOriginDrop
- 7.50: IPC: ReplicationSlotDrop
- 7.51: IPC: RestoreCommand
- 7.52: IPC: SafeSnapshot
- 7.53: IPC: SyncRep
- 7.54: IPC: WalReceiverExit
- 7.55: IPC: WalReceiverUpstreamCatchup
- 7.56: IPC: WalReceiverWaitStart
- 7.57: IPC: WalSummaryReady
- 7.58: IPC: XactGroupUpdate
- 8: Client 等待
-
9: Activity 等待
- 9.1: Activity: ArchiverMain
- 9.2: Activity: AutovacuumMain
- 9.3: Activity: BgwriterHibernate
- 9.4: Activity: BgwriterMain
- 9.5: Activity: CheckpointerMain
- 9.6: Activity: CheckpointerShutdown
- 9.7: Activity: IoWorkerMain
- 9.8: Activity: LogicalApplyMain
- 9.9: Activity: LogicalLauncherMain
- 9.10: Activity: LogicalParallelApplyMain
- 9.11: Activity: PgStatMain
- 9.12: Activity: RecoveryWalStream
- 9.13: Activity: ReplicationSlotsyncMain
- 9.14: Activity: ReplicationSlotsyncShutdown
- 9.15: Activity: SysloggerMain
- 9.16: Activity: WalReceiverMain
- 9.17: Activity: WalSenderMain
- 9.18: Activity: WalSummarizerWal
- 9.19: Activity: WalWriterMain
-
10: Timeout 等待
- 10.1: Timeout: BaseBackupThrottle
- 10.2: Timeout: CheckpointWriteDelay
- 10.3: Timeout: PgSleep
- 10.4: Timeout: RecoveryApplyDelay
- 10.5: Timeout: RecoveryRetrieveRetryInterval
- 10.6: Timeout: RegisterSyncRequest
- 10.7: Timeout: SpinDelay
- 10.8: Timeout: VacuumDelay
- 10.9: Timeout: VacuumTruncate
- 10.10: Timeout: WalSummarizerError
-
11: BufferPin 等待
- 11.1: BufferPin: BufferPin
-
12: 扩展等待事件
-
13: 关联 GUC
- 13.1: [[guc:autovacuum_freeze_max_age]]
- 13.2: [[guc:autovacuum_multixact_freeze_max_age]]
- 13.3: [[guc:autovacuum_naptime]]
- 13.4: [[guc:checkpoint_timeout]]
- 13.5: [[guc:deadlock_timeout]]
- 13.6: [[guc:full_page_writes]]
- 13.7: [[guc:idle_in_transaction_session_timeout]]
- 13.8: [[guc:lock_timeout]]
- 13.9: [[guc:max_connections]]
- 13.10: [[guc:max_locks_per_transaction]]
- 13.11: [[guc:max_parallel_workers_per_gather]]
- 13.12: [[guc:max_wal_size]]
- 13.13: [[guc:shared_buffers]]
- 13.14: [[guc:synchronous_commit]]
- 13.15: [[guc:synchronous_standby_names]]
- 13.16: [[guc:vacuum_freeze_table_age]]
- 13.17: [[guc:vacuum_multixact_freeze_table_age]]
- 13.18: [[guc:wal_buffers]]
- 13.19: [[guc:wal_sender_timeout]]
- 13.20: [[guc:wal_writer_delay]]
- 13.21: [[guc:wal_writer_flush_after]]
-
14: 关联指标
- 14.1: [[metric:active_backends]]
- 14.2: [[metric:blocked_sessions]]
- 14.3: [[metric:blocks_read]]
- 14.4: [[metric:buffer_hit_ratio]]
- 14.5: [[metric:checkpoint_time]]
- 14.6: [[metric:commit_latency]]
- 14.7: [[metric:io_read_time]]
- 14.8: [[metric:io_write_time]]
- 14.9: [[metric:locks_per_backend]]
- 14.10: [[metric:multixact_member_io]]
- 14.11: [[metric:oldest_multixact_age]]
- 14.12: [[metric:oldest_transaction_age]]
- 14.13: [[metric:replication_flush_lag]]
- 14.14: [[metric:statement_latency]]
- 14.15: [[metric:statement_wal_bytes]]
- 14.16: [[metric:wait_event_share]]
- 14.17: [[metric:waiting_sessions]]
- 14.18: [[metric:wal_bytes]]
- 14.19: [[metric:wal_fpi]]
- 14.20: [[metric:wal_sync_time]]
- 14.21: [[metric:wal_write_time]]
- 14.22: [[metric:xact_slru_io]]
先看正在等待的会话,再看事件名称
先保全现场:谁在等、等了多久、事务是否仍然打开、阻塞者是谁。再用事件条目把快照连接到 PostgreSQL 源码与边界清晰的处置动作。
官方文档 → pg_wait_events → 源码 grep → 实际执行 SQL先做第一张快照
重启服务或取消后端之前,先执行:
等待事件快照只说明进程此刻睡在哪里,不代表查询耗时都花在这里。重复采样,并与延迟、吞吐、锁以及操作系统证据关联后,才能判断它是不是根因。
接着使用等待事件排查总图,或按 wait_event_type 进入对应类别。
按类别阅读
| 类别 | 应当怎样理解 | 第一个问题 |
|---|---|---|
| Lock | 另一个事务或会话持有重量级锁 | 阻塞链最前端是谁? |
| LWLock | PostgreSQL 内部共享内存结构发生竞争 | 重复采样时是否总是同一内部资源发热? |
| IO | 后端在等待文件操作 | 是存储变慢,还是 PostgreSQL 正在做预期工作? |
| IPC | 进程正在彼此协调 | 哪个对端或执行阶段还没到达同步点? |
| Client | PostgreSQL 在等待应用或网络 | 会话是正常空闲、发生背压,还是卡在事务里? |
| Activity | 后台进程处于正常主循环 | 对这种后端类型而言,这是不是预期空闲? |
| Timeout | 有意设置的计时器或限速尚未到期 | 是哪条策略主动插入了等待? |
| BufferPin | 其他后端钉住缓冲区,使其不能移动 | 哪个游标或扫描仍持有 pin? |
通用的扩展等待事件机制单独说明;扩展自行注册的名称不纳入本大典。
证据契约
每个完成的事件条目都明确区分四类信息:
- 事实:事件身份、版本范围与官方描述译文。
- 分析:报告等待的源码路径,以及该路径正在做什么。
- 建议:结合负载的正常/异常边界与分场景动作。
- 证据:可执行 SQL 与精确到 PostgreSQL 发布版本的源码
file:line。
当同一名称只在部分大版本出现时,使用版本矩阵对照。
1 - 等待事件排查总图
这张图刻意保守:先保全证据,再区分预期空闲与真正停滞,最后进入各类别的专项排查。
flowchart TD
A[采集 pg_stat_activity] --> B{wait_event 为空?}
B -- 是 --> C[后端可能在用 CPU 或处于探针之间]
B -- 否 --> D{Activity 或 Client?}
D -- 是 --> E{空闲状态或预期的后台主循环?}
E -- 是 --> F[通常正常;检查未结束事务与连接规模]
E -- 否 --> G[检查客户端背压、网络与应用责任方]
D -- 否 --> H{Lock 或 BufferPin?}
H -- 是 --> I[构建阻塞链,定位根阻塞者]
H -- 否 --> J{IO?}
J -- 是 --> K[关联 pg_stat_io、文件系统延迟与负载阶段]
J -- 否 --> L{LWLock?}
L -- 是 --> M[重复采样,确认单个发热的内部资源]
L -- 否 --> N[检查 IPC 对端或 Timeout 策略]
I --> O[选择影响最小且有边界的动作]
K --> O
M --> O
N --> O最小证据包
- 两张或更多带时间戳的快照。
pid、backend_type、state、查询时长、事务时长、等待类型和名称。- 每个等待后端的
pg_blocking_pids(pid)。 - 精确的 PostgreSQL 大版本与小版本。
- 负载标记:发布、批处理、检查点、清理、备份、DDL 或故障切换。
不要只因为某个等待出现频繁就终止后端。健康集群里,Activity、许多 Client 与计时器等待本来就可能占据多数样本。
2 - 版本矩阵
版本矩阵对账两条事实路径:PostgreSQL 13–16 官方监控章节表格,以及在 PostgreSQL 17–18 Docker 实例上实查得到的 pg_wait_events 行。
| 版本 | 提取权威 | 行数 |
|---|---|---|
| 13 | 官方 monitoring 文档 | 222 |
| 14 | 官方 monitoring 文档 | 231 |
| 15 | 官方 monitoring 文档 | 238 |
| 16 | 官方 monitoring 文档 | 246 |
| 17 | Docker postgres:17,查询 pg_wait_events |
265 |
| 18 | Docker postgres:18,查询 pg_wait_events |
274 |
并集包含 327 个精确的 (type, name) 身份。其中 45 个历史身份归并为 282 个语义档案:281 个核心事件条目,加 1 个 Extension 机制占位记录。映射包括 PG14 两次类型迁移、PG16 两个经核验的 Parallel Hash 改名,以及 PostgreSQL 在 PG17 进行的等待名称拼写规范化。
下载
CSV 会把新旧名称保留为独立行,并提供 canonical 列。事件页面通过显式 alias 合并阅读,但不会抹掉它们真实的版本范围。
改名判定策略
只有证据确定时才建立映射:相邻版本替代项在忽略大小写并移除非字母数字后完全相同,或源码/文档能够建立经核验的改名关系。描述相似本身不足以判定;PgStatMain 等移除项会保留为历史事件,而不是猜测别名。
完整身份矩阵
| 类型 | 事件身份 | 13 | 14 | 15 | 16 | 17 | 18 | 标准身份 / 变化 | |
|---|---|---|---|---|---|---|---|---|---|
| Activity | ArchiverMain |
✓ | ✓ | ✓ | ✓ | ✓ | ✓ | — | |
| Activity | AutoVacuumMain |
✓ | ✓ | ✓ | ✓ | Activity/AutovacuumMain · spelling |
|||
| Activity | AutovacuumMain |
✓ | ✓ | — | |||||
| Activity | BgWriterHibernate |
✓ | ✓ | ✓ | ✓ | Activity/BgwriterHibernate · spelling |
|||
| Activity | BgWriterMain |
✓ | ✓ | ✓ | ✓ | Activity/BgwriterMain · spelling |
|||
| Activity | BgwriterHibernate |
✓ | ✓ | — | |||||
| Activity | BgwriterMain |
✓ | ✓ | — | |||||
| Activity | CheckpointerMain |
✓ | ✓ | ✓ | ✓ | ✓ | ✓ | — | |
| Activity | CheckpointerShutdown |
✓ | — | ||||||
| Activity | IoWorkerMain |
✓ | — | ||||||
| Activity | LogicalApplyMain |
✓ | ✓ | ✓ | ✓ | ✓ | ✓ | — | |
| Activity | LogicalLauncherMain |
✓ | ✓ | ✓ | ✓ | ✓ | ✓ | — | |
| Activity | LogicalParallelApplyMain |
✓ | ✓ | ✓ | — | ||||
| Activity | PgStatMain |
✓ | ✓ | — | |||||
| Activity | RecoveryWalStream |
✓ | ✓ | ✓ | ✓ | ✓ | ✓ | — | |
| Activity | ReplicationSlotsyncMain |
✓ | ✓ | — | |||||
| Activity | ReplicationSlotsyncShutdown |
✓ | ✓ | — | |||||
| Activity | SysLoggerMain |
✓ | ✓ | ✓ | ✓ | Activity/SysloggerMain · spelling |
|||
| Activity | SysloggerMain |
✓ | ✓ | — | |||||
| Activity | WalReceiverMain |
✓ | ✓ | ✓ | ✓ | ✓ | ✓ | — | |
| Activity | WalSenderMain |
✓ | ✓ | ✓ | ✓ | ✓ | ✓ | — | |
| Activity | WalSummarizerWal |
✓ | ✓ | — | |||||
| Activity | WalWriterMain |
✓ | ✓ | ✓ | ✓ | ✓ | ✓ | — | |
| BufferPin | BufferPin |
✓ | ✓ | ✓ | ✓ | ✓ | ✓ | — | |
| Client | ClientRead |
✓ | ✓ | ✓ | ✓ | ✓ | ✓ | — | |
| Client | ClientWrite |
✓ | ✓ | ✓ | ✓ | ✓ | ✓ | — | |
| Client | GSSOpenServer |
✓ | ✓ | ✓ | ✓ | Client/GssOpenServer · spelling |
|||
| Client | GssOpenServer |
✓ | ✓ | — | |||||
| Client | LibPQWalReceiverConnect |
✓ | ✓ | ✓ | ✓ | Client/LibpqwalreceiverConnect · spelling |
|||
| Client | LibPQWalReceiverReceive |
✓ | ✓ | ✓ | ✓ | Client/LibpqwalreceiverReceive · spelling |
|||
| Client | LibpqwalreceiverConnect |
✓ | ✓ | — | |||||
| Client | LibpqwalreceiverReceive |
✓ | ✓ | — | |||||
| Client | SSLOpenServer |
✓ | ✓ | ✓ | ✓ | Client/SslOpenServer · spelling |
|||
| Client | SslOpenServer |
✓ | ✓ | — | |||||
| Client | WaitForStandbyConfirmation |
✓ | ✓ | — | |||||
| Client | WalReceiverWaitStart |
✓ | IPC/WalReceiverWaitStart · type_move |
||||||
| Client | WalSenderWaitForWAL |
✓ | ✓ | ✓ | ✓ | Client/WalSenderWaitForWal · spelling |
|||
| Client | WalSenderWaitForWal |
✓ | ✓ | — | |||||
| Client | WalSenderWriteData |
✓ | ✓ | ✓ | ✓ | ✓ | ✓ | — | |
| Extension | Extension |
✓ | ✓ | ✓ | ✓ | ✓ | ✓ | — | |
| IO | AioIoCompletion |
✓ | — | ||||||
| IO | AioIoUringExecution |
✓ | — | ||||||
| IO | AioIoUringSubmit |
✓ | — | ||||||
| IO | BaseBackupRead |
✓ | ✓ | ✓ | IO/BasebackupRead · spelling |
||||
| IO | BaseBackupSync |
✓ | ✓ | IO/BasebackupSync · spelling |
|||||
| IO | BaseBackupWrite |
✓ | ✓ | IO/BasebackupWrite · spelling |
|||||
| IO | BasebackupRead |
✓ | ✓ | — | |||||
| IO | BasebackupSync |
✓ | ✓ | — | |||||
| IO | BasebackupWrite |
✓ | ✓ | — | |||||
| IO | BufFileRead |
✓ | ✓ | ✓ | ✓ | IO/BuffileRead · spelling |
|||
| IO | BufFileTruncate |
✓ | ✓ | ✓ | IO/BuffileTruncate · spelling |
||||
| IO | BufFileWrite |
✓ | ✓ | ✓ | ✓ | IO/BuffileWrite · spelling |
|||
| IO | BuffileRead |
✓ | ✓ | — | |||||
| IO | BuffileTruncate |
✓ | ✓ | — | |||||
| IO | BuffileWrite |
✓ | ✓ | — | |||||
| IO | ControlFileRead |
✓ | ✓ | ✓ | ✓ | ✓ | ✓ | — | |
| IO | ControlFileSync |
✓ | ✓ | ✓ | ✓ | ✓ | ✓ | — | |
| IO | ControlFileSyncUpdate |
✓ | ✓ | ✓ | ✓ | ✓ | ✓ | — | |
| IO | ControlFileWrite |
✓ | ✓ | ✓ | ✓ | ✓ | ✓ | — | |
| IO | ControlFileWriteUpdate |
✓ | ✓ | ✓ | ✓ | ✓ | ✓ | — | |
| IO | CopyFileCopy |
✓ | — | ||||||
| IO | CopyFileRead |
✓ | ✓ | ✓ | ✓ | ✓ | ✓ | — | |
| IO | CopyFileWrite |
✓ | ✓ | ✓ | ✓ | ✓ | ✓ | — | |
| IO | DSMAllocate |
✓ | IO/DsmAllocate · spelling |
||||||
| IO | DSMFillZeroWrite |
✓ | ✓ | ✓ | ✓ | IO/DsmFillZeroWrite · spelling |
|||
| IO | DataFileExtend |
✓ | ✓ | ✓ | ✓ | ✓ | ✓ | — | |
| IO | DataFileFlush |
✓ | ✓ | ✓ | ✓ | ✓ | ✓ | — | |
| IO | DataFileImmediateSync |
✓ | ✓ | ✓ | ✓ | ✓ | ✓ | — | |
| IO | DataFilePrefetch |
✓ | ✓ | ✓ | ✓ | ✓ | ✓ | — | |
| IO | DataFileRead |
✓ | ✓ | ✓ | ✓ | ✓ | ✓ | — | |
| IO | DataFileSync |
✓ | ✓ | ✓ | ✓ | ✓ | ✓ | — | |
| IO | DataFileTruncate |
✓ | ✓ | ✓ | ✓ | ✓ | ✓ | — | |
| IO | DataFileWrite |
✓ | ✓ | ✓ | ✓ | ✓ | ✓ | — | |
| IO | DsmAllocate |
✓ | ✓ | — | |||||
| IO | DsmFillZeroWrite |
✓ | ✓ | — | |||||
| IO | LockFileAddToDataDirRead |
✓ | ✓ | ✓ | ✓ | IO/LockFileAddtodatadirRead · spelling |
|||
| IO | LockFileAddToDataDirSync |
✓ | ✓ | ✓ | ✓ | IO/LockFileAddtodatadirSync · spelling |
|||
| IO | LockFileAddToDataDirWrite |
✓ | ✓ | ✓ | ✓ | IO/LockFileAddtodatadirWrite · spelling |
|||
| IO | LockFileAddtodatadirRead |
✓ | ✓ | — | |||||
| IO | LockFileAddtodatadirSync |
✓ | ✓ | — | |||||
| IO | LockFileAddtodatadirWrite |
✓ | ✓ | — | |||||
| IO | LockFileCreateRead |
✓ | ✓ | ✓ | ✓ | ✓ | ✓ | — | |
| IO | LockFileCreateSync |
✓ | ✓ | ✓ | ✓ | ✓ | ✓ | — | |
| IO | LockFileCreateWrite |
✓ | ✓ | ✓ | ✓ | ✓ | ✓ | — | |
| IO | LockFileReCheckDataDirRead |
✓ | ✓ | ✓ | ✓ | IO/LockFileRecheckdatadirRead · spelling |
|||
| IO | LockFileRecheckdatadirRead |
✓ | ✓ | — | |||||
| IO | LogicalChangesRead |
✓ | — | ||||||
| IO | LogicalChangesWrite |
✓ | — | ||||||
| IO | LogicalRewriteCheckpointSync |
✓ | ✓ | ✓ | ✓ | ✓ | ✓ | — | |
| IO | LogicalRewriteMappingSync |
✓ | ✓ | ✓ | ✓ | ✓ | ✓ | — | |
| IO | LogicalRewriteMappingWrite |
✓ | ✓ | ✓ | ✓ | ✓ | ✓ | — | |
| IO | LogicalRewriteSync |
✓ | ✓ | ✓ | ✓ | ✓ | ✓ | — | |
| IO | LogicalRewriteTruncate |
✓ | ✓ | ✓ | ✓ | ✓ | ✓ | — | |
| IO | LogicalRewriteWrite |
✓ | ✓ | ✓ | ✓ | ✓ | ✓ | — | |
| IO | LogicalSubxactRead |
✓ | — | ||||||
| IO | LogicalSubxactWrite |
✓ | — | ||||||
| IO | RelationMapRead |
✓ | ✓ | ✓ | ✓ | ✓ | ✓ | — | |
| IO | RelationMapReplace |
✓ | ✓ | ✓ | — | ||||
| IO | RelationMapSync |
✓ | ✓ | ✓ | — | ||||
| IO | RelationMapWrite |
✓ | ✓ | ✓ | ✓ | ✓ | ✓ | — | |
| IO | ReorderBufferRead |
✓ | ✓ | ✓ | ✓ | ✓ | ✓ | — | |
| IO | ReorderBufferWrite |
✓ | ✓ | ✓ | ✓ | ✓ | ✓ | — | |
| IO | ReorderLogicalMappingRead |
✓ | ✓ | ✓ | ✓ | ✓ | ✓ | — | |
| IO | ReplicationSlotRead |
✓ | ✓ | ✓ | ✓ | ✓ | ✓ | — | |
| IO | ReplicationSlotRestoreSync |
✓ | ✓ | ✓ | ✓ | ✓ | ✓ | — | |
| IO | ReplicationSlotSync |
✓ | ✓ | ✓ | ✓ | ✓ | ✓ | — | |
| IO | ReplicationSlotWrite |
✓ | ✓ | ✓ | ✓ | ✓ | ✓ | — | |
| IO | SLRUFlushSync |
✓ | ✓ | ✓ | ✓ | IO/SlruFlushSync · spelling |
|||
| IO | SLRURead |
✓ | ✓ | ✓ | ✓ | IO/SlruRead · spelling |
|||
| IO | SLRUSync |
✓ | ✓ | ✓ | ✓ | IO/SlruSync · spelling |
|||
| IO | SLRUWrite |
✓ | ✓ | ✓ | ✓ | IO/SlruWrite · spelling |
|||
| IO | SlruFlushSync |
✓ | ✓ | — | |||||
| IO | SlruRead |
✓ | ✓ | — | |||||
| IO | SlruSync |
✓ | ✓ | — | |||||
| IO | SlruWrite |
✓ | ✓ | — | |||||
| IO | SnapbuildRead |
✓ | ✓ | ✓ | ✓ | ✓ | ✓ | — | |
| IO | SnapbuildSync |
✓ | ✓ | ✓ | ✓ | ✓ | ✓ | — | |
| IO | SnapbuildWrite |
✓ | ✓ | ✓ | ✓ | ✓ | ✓ | — | |
| IO | TimelineHistoryFileSync |
✓ | ✓ | ✓ | ✓ | ✓ | ✓ | — | |
| IO | TimelineHistoryFileWrite |
✓ | ✓ | ✓ | ✓ | ✓ | ✓ | — | |
| IO | TimelineHistoryRead |
✓ | ✓ | ✓ | ✓ | ✓ | ✓ | — | |
| IO | TimelineHistorySync |
✓ | ✓ | ✓ | ✓ | ✓ | ✓ | — | |
| IO | TimelineHistoryWrite |
✓ | ✓ | ✓ | ✓ | ✓ | ✓ | — | |
| IO | TwophaseFileRead |
✓ | ✓ | ✓ | ✓ | ✓ | ✓ | — | |
| IO | TwophaseFileSync |
✓ | ✓ | ✓ | ✓ | ✓ | ✓ | — | |
| IO | TwophaseFileWrite |
✓ | ✓ | ✓ | ✓ | ✓ | ✓ | — | |
| IO | VersionFileSync |
✓ | ✓ | ✓ | ✓ | — | |||
| IO | VersionFileWrite |
✓ | ✓ | ✓ | ✓ | — | |||
| IO | WALBootstrapSync |
✓ | ✓ | ✓ | ✓ | IO/WalBootstrapSync · spelling |
|||
| IO | WALBootstrapWrite |
✓ | ✓ | ✓ | ✓ | IO/WalBootstrapWrite · spelling |
|||
| IO | WALCopyRead |
✓ | ✓ | ✓ | ✓ | IO/WalCopyRead · spelling |
|||
| IO | WALCopySync |
✓ | ✓ | ✓ | ✓ | IO/WalCopySync · spelling |
|||
| IO | WALCopyWrite |
✓ | ✓ | ✓ | ✓ | IO/WalCopyWrite · spelling |
|||
| IO | WALInitSync |
✓ | ✓ | ✓ | ✓ | IO/WalInitSync · spelling |
|||
| IO | WALInitWrite |
✓ | ✓ | ✓ | ✓ | IO/WalInitWrite · spelling |
|||
| IO | WALRead |
✓ | ✓ | ✓ | ✓ | IO/WalRead · spelling |
|||
| IO | WALSenderTimelineHistoryRead |
✓ | ✓ | ✓ | ✓ | IO/WalsenderTimelineHistoryRead · spelling |
|||
| IO | WALSync |
✓ | ✓ | ✓ | ✓ | IO/WalSync · spelling |
|||
| IO | WALSyncMethodAssign |
✓ | ✓ | ✓ | ✓ | IO/WalSyncMethodAssign · spelling |
|||
| IO | WALWrite |
✓ | ✓ | ✓ | ✓ | IO/WalWrite · spelling |
|||
| IO | WalBootstrapSync |
✓ | ✓ | — | |||||
| IO | WalBootstrapWrite |
✓ | ✓ | — | |||||
| IO | WalCopyRead |
✓ | ✓ | — | |||||
| IO | WalCopySync |
✓ | ✓ | — | |||||
| IO | WalCopyWrite |
✓ | ✓ | — | |||||
| IO | WalInitSync |
✓ | ✓ | — | |||||
| IO | WalInitWrite |
✓ | ✓ | — | |||||
| IO | WalRead |
✓ | ✓ | — | |||||
| IO | WalSummaryRead |
✓ | ✓ | — | |||||
| IO | WalSummaryWrite |
✓ | ✓ | — | |||||
| IO | WalSync |
✓ | ✓ | — | |||||
| IO | WalSyncMethodAssign |
✓ | ✓ | — | |||||
| IO | WalWrite |
✓ | ✓ | — | |||||
| IO | WalsenderTimelineHistoryRead |
✓ | ✓ | — | |||||
| IPC | AppendReady |
✓ | ✓ | ✓ | ✓ | ✓ | — | ||
| IPC | ArchiveCleanupCommand |
✓ | ✓ | ✓ | ✓ | — | |||
| IPC | ArchiveCommand |
✓ | ✓ | ✓ | ✓ | — | |||
| IPC | BackendTermination |
✓ | ✓ | ✓ | ✓ | ✓ | — | ||
| IPC | BackupWaitWalArchive |
✓ | ✓ | ✓ | ✓ | ✓ | ✓ | — | |
| IPC | BgWorkerShutdown |
✓ | ✓ | ✓ | ✓ | IPC/BgworkerShutdown · spelling |
|||
| IPC | BgWorkerStartup |
✓ | ✓ | ✓ | ✓ | IPC/BgworkerStartup · spelling |
|||
| IPC | BgworkerShutdown |
✓ | ✓ | — | |||||
| IPC | BgworkerStartup |
✓ | ✓ | — | |||||
| IPC | BtreePage |
✓ | ✓ | ✓ | ✓ | ✓ | ✓ | — | |
| IPC | BufferIO |
✓ | ✓ | ✓ | IPC/BufferIo · spelling |
||||
| IPC | BufferIo |
✓ | ✓ | — | |||||
| IPC | CheckpointDelayComplete |
✓ | ✓ | — | |||||
| IPC | CheckpointDelayStart |
✓ | ✓ | — | |||||
| IPC | CheckpointDone |
✓ | ✓ | ✓ | ✓ | ✓ | ✓ | — | |
| IPC | CheckpointStart |
✓ | ✓ | ✓ | ✓ | ✓ | ✓ | — | |
| IPC | ExecuteGather |
✓ | ✓ | ✓ | ✓ | ✓ | ✓ | — | |
| IPC | HashBatchAllocate |
✓ | ✓ | ✓ | ✓ | ✓ | ✓ | — | |
| IPC | HashBatchElect |
✓ | ✓ | ✓ | ✓ | ✓ | ✓ | — | |
| IPC | HashBatchLoad |
✓ | ✓ | ✓ | ✓ | ✓ | ✓ | — | |
| IPC | HashBuildAllocate |
✓ | ✓ | ✓ | ✓ | ✓ | ✓ | — | |
| IPC | HashBuildElect |
✓ | ✓ | ✓ | ✓ | ✓ | ✓ | — | |
| IPC | HashBuildHashInner |
✓ | ✓ | ✓ | ✓ | ✓ | ✓ | — | |
| IPC | HashBuildHashOuter |
✓ | ✓ | ✓ | ✓ | ✓ | ✓ | — | |
| IPC | HashGrowBatchesAllocate |
✓ | ✓ | ✓ | IPC/HashGrowBatchesReallocate · rename |
||||
| IPC | HashGrowBatchesDecide |
✓ | ✓ | ✓ | ✓ | ✓ | ✓ | — | |
| IPC | HashGrowBatchesElect |
✓ | ✓ | ✓ | ✓ | ✓ | ✓ | — | |
| IPC | HashGrowBatchesFinish |
✓ | ✓ | ✓ | ✓ | ✓ | ✓ | — | |
| IPC | HashGrowBatchesReallocate |
✓ | ✓ | ✓ | — | ||||
| IPC | HashGrowBatchesRepartition |
✓ | ✓ | ✓ | ✓ | ✓ | ✓ | — | |
| IPC | HashGrowBucketsAllocate |
✓ | ✓ | ✓ | IPC/HashGrowBucketsReallocate · rename |
||||
| IPC | HashGrowBucketsElect |
✓ | ✓ | ✓ | ✓ | ✓ | ✓ | — | |
| IPC | HashGrowBucketsReallocate |
✓ | ✓ | ✓ | — | ||||
| IPC | HashGrowBucketsReinsert |
✓ | ✓ | ✓ | ✓ | ✓ | ✓ | — | |
| IPC | LogicalApplySendData |
✓ | ✓ | ✓ | — | ||||
| IPC | LogicalParallelApplyStateChange |
✓ | ✓ | ✓ | — | ||||
| IPC | LogicalSyncData |
✓ | ✓ | ✓ | ✓ | ✓ | ✓ | — | |
| IPC | LogicalSyncStateChange |
✓ | ✓ | ✓ | ✓ | ✓ | ✓ | — | |
| IPC | MessageQueueInternal |
✓ | ✓ | ✓ | ✓ | ✓ | ✓ | — | |
| IPC | MessageQueuePutMessage |
✓ | ✓ | ✓ | ✓ | ✓ | ✓ | — | |
| IPC | MessageQueueReceive |
✓ | ✓ | ✓ | ✓ | ✓ | ✓ | — | |
| IPC | MessageQueueSend |
✓ | ✓ | ✓ | ✓ | ✓ | ✓ | — | |
| IPC | MultixactCreation |
✓ | ✓ | — | |||||
| IPC | ParallelBitmapScan |
✓ | ✓ | ✓ | ✓ | ✓ | ✓ | — | |
| IPC | ParallelCreateIndexScan |
✓ | ✓ | ✓ | ✓ | ✓ | ✓ | — | |
| IPC | ParallelFinish |
✓ | ✓ | ✓ | ✓ | ✓ | ✓ | — | |
| IPC | ProcArrayGroupUpdate |
✓ | ✓ | ✓ | ✓ | IPC/ProcarrayGroupUpdate · spelling |
|||
| IPC | ProcSignalBarrier |
✓ | ✓ | ✓ | ✓ | ✓ | ✓ | — | |
| IPC | ProcarrayGroupUpdate |
✓ | ✓ | — | |||||
| IPC | Promote |
✓ | ✓ | ✓ | ✓ | ✓ | ✓ | — | |
| IPC | RecoveryConflictSnapshot |
✓ | ✓ | ✓ | ✓ | ✓ | ✓ | — | |
| IPC | RecoveryConflictTablespace |
✓ | ✓ | ✓ | ✓ | ✓ | ✓ | — | |
| IPC | RecoveryEndCommand |
✓ | ✓ | ✓ | ✓ | — | |||
| IPC | RecoveryPause |
✓ | ✓ | ✓ | ✓ | ✓ | ✓ | — | |
| IPC | ReplicationOriginDrop |
✓ | ✓ | ✓ | ✓ | ✓ | ✓ | — | |
| IPC | ReplicationSlotDrop |
✓ | ✓ | ✓ | ✓ | ✓ | ✓ | — | |
| IPC | RestoreCommand |
✓ | ✓ | ✓ | ✓ | — | |||
| IPC | SafeSnapshot |
✓ | ✓ | ✓ | ✓ | ✓ | ✓ | — | |
| IPC | SyncRep |
✓ | ✓ | ✓ | ✓ | ✓ | ✓ | — | |
| IPC | WalReceiverExit |
✓ | ✓ | ✓ | ✓ | ✓ | — | ||
| IPC | WalReceiverUpstreamCatchup |
✓ | ✓ | — | |||||
| IPC | WalReceiverWaitStart |
✓ | ✓ | ✓ | ✓ | ✓ | — | ||
| IPC | WalSummaryReady |
✓ | ✓ | — | |||||
| IPC | XactGroupUpdate |
✓ | ✓ | ✓ | ✓ | ✓ | ✓ | — | |
| Lock | advisory |
✓ | ✓ | ✓ | ✓ | ✓ | ✓ | — | |
| Lock | applytransaction |
✓ | ✓ | ✓ | — | ||||
| Lock | extend |
✓ | ✓ | ✓ | ✓ | ✓ | ✓ | — | |
| Lock | frozenid |
✓ | ✓ | ✓ | ✓ | ✓ | ✓ | — | |
| Lock | object |
✓ | ✓ | ✓ | ✓ | ✓ | ✓ | — | |
| Lock | page |
✓ | ✓ | ✓ | ✓ | ✓ | ✓ | — | |
| Lock | relation |
✓ | ✓ | ✓ | ✓ | ✓ | ✓ | — | |
| Lock | spectoken |
✓ | ✓ | ✓ | ✓ | ✓ | ✓ | — | |
| Lock | transactionid |
✓ | ✓ | ✓ | ✓ | ✓ | ✓ | — | |
| Lock | tuple |
✓ | ✓ | ✓ | ✓ | ✓ | ✓ | — | |
| Lock | userlock |
✓ | ✓ | ✓ | ✓ | ✓ | ✓ | — | |
| Lock | virtualxid |
✓ | ✓ | ✓ | ✓ | ✓ | ✓ | — | |
| LWLock | AddinShmemInit |
✓ | ✓ | ✓ | ✓ | ✓ | ✓ | — | |
| LWLock | AioUringCompletion |
✓ | — | ||||||
| LWLock | AioWorkerSubmissionQueue |
✓ | — | ||||||
| LWLock | AutoFile |
✓ | ✓ | ✓ | ✓ | ✓ | ✓ | — | |
| LWLock | Autovacuum |
✓ | ✓ | ✓ | ✓ | ✓ | ✓ | — | |
| LWLock | AutovacuumSchedule |
✓ | ✓ | ✓ | ✓ | ✓ | ✓ | — | |
| LWLock | BackgroundWorker |
✓ | ✓ | ✓ | ✓ | ✓ | ✓ | — | |
| LWLock | BtreeVacuum |
✓ | ✓ | ✓ | ✓ | ✓ | ✓ | — | |
| LWLock | BufferContent |
✓ | ✓ | ✓ | ✓ | ✓ | ✓ | — | |
| LWLock | BufferIO |
✓ | IPC/BufferIo · type_move |
||||||
| LWLock | BufferMapping |
✓ | ✓ | ✓ | ✓ | ✓ | ✓ | — | |
| LWLock | Checkpoint |
✓ | — | ||||||
| LWLock | CheckpointerComm |
✓ | ✓ | ✓ | ✓ | ✓ | ✓ | — | |
| LWLock | CommitTs |
✓ | ✓ | ✓ | ✓ | ✓ | ✓ | — | |
| LWLock | CommitTsBuffer |
✓ | ✓ | ✓ | ✓ | ✓ | ✓ | — | |
| LWLock | CommitTsSLRU |
✓ | ✓ | ✓ | ✓ | ✓ | ✓ | — | |
| LWLock | ControlFile |
✓ | ✓ | ✓ | ✓ | ✓ | ✓ | — | |
| LWLock | DSMRegistry |
✓ | ✓ | — | |||||
| LWLock | DSMRegistryDSA |
✓ | ✓ | — | |||||
| LWLock | DSMRegistryHash |
✓ | ✓ | — | |||||
| LWLock | DynamicSharedMemoryControl |
✓ | ✓ | ✓ | ✓ | ✓ | ✓ | — | |
| LWLock | InjectionPoint |
✓ | ✓ | — | |||||
| LWLock | LockFastPath |
✓ | ✓ | ✓ | ✓ | ✓ | ✓ | — | |
| LWLock | LockManager |
✓ | ✓ | ✓ | ✓ | ✓ | ✓ | — | |
| LWLock | LogicalRepLauncherDSA |
✓ | ✓ | ✓ | — | ||||
| LWLock | LogicalRepLauncherHash |
✓ | ✓ | ✓ | — | ||||
| LWLock | LogicalRepWorker |
✓ | ✓ | ✓ | ✓ | ✓ | ✓ | — | |
| LWLock | MultiXactGen |
✓ | ✓ | ✓ | ✓ | ✓ | ✓ | — | |
| LWLock | MultiXactMemberBuffer |
✓ | ✓ | ✓ | ✓ | ✓ | ✓ | — | |
| LWLock | MultiXactMemberSLRU |
✓ | ✓ | ✓ | ✓ | ✓ | ✓ | — | |
| LWLock | MultiXactOffsetBuffer |
✓ | ✓ | ✓ | ✓ | ✓ | ✓ | — | |
| LWLock | MultiXactOffsetSLRU |
✓ | ✓ | ✓ | ✓ | ✓ | ✓ | — | |
| LWLock | MultiXactTruncation |
✓ | ✓ | ✓ | ✓ | ✓ | ✓ | — | |
| LWLock | NotifyBuffer |
✓ | ✓ | ✓ | ✓ | ✓ | ✓ | — | |
| LWLock | NotifyQueue |
✓ | ✓ | ✓ | ✓ | ✓ | ✓ | — | |
| LWLock | NotifyQueueTail |
✓ | ✓ | ✓ | ✓ | ✓ | ✓ | — | |
| LWLock | NotifySLRU |
✓ | ✓ | ✓ | ✓ | ✓ | ✓ | — | |
| LWLock | OidGen |
✓ | ✓ | ✓ | ✓ | ✓ | ✓ | — | |
| LWLock | OldSnapshotTimeMap |
✓ | ✓ | ✓ | ✓ | — | |||
| LWLock | ParallelAppend |
✓ | ✓ | ✓ | ✓ | ✓ | ✓ | — | |
| LWLock | ParallelBtreeScan |
✓ | — | ||||||
| LWLock | ParallelHashJoin |
✓ | ✓ | ✓ | ✓ | ✓ | ✓ | — | |
| LWLock | ParallelQueryDSA |
✓ | ✓ | ✓ | ✓ | ✓ | ✓ | — | |
| LWLock | ParallelVacuumDSA |
✓ | ✓ | — | |||||
| LWLock | PerSessionDSA |
✓ | ✓ | ✓ | ✓ | ✓ | ✓ | — | |
| LWLock | PerSessionRecordType |
✓ | ✓ | ✓ | ✓ | ✓ | ✓ | — | |
| LWLock | PerSessionRecordTypmod |
✓ | ✓ | ✓ | ✓ | ✓ | ✓ | — | |
| LWLock | PerXactPredicateList |
✓ | ✓ | ✓ | ✓ | ✓ | ✓ | — | |
| LWLock | PgStatsDSA |
✓ | ✓ | ✓ | ✓ | — | |||
| LWLock | PgStatsData |
✓ | ✓ | ✓ | ✓ | — | |||
| LWLock | PgStatsHash |
✓ | ✓ | ✓ | ✓ | — | |||
| LWLock | PredicateLockManager |
✓ | ✓ | ✓ | ✓ | ✓ | ✓ | — | |
| LWLock | ProcArray |
✓ | ✓ | ✓ | ✓ | ✓ | ✓ | — | |
| LWLock | RelCacheInit |
✓ | ✓ | ✓ | ✓ | ✓ | ✓ | — | |
| LWLock | RelationMapping |
✓ | ✓ | ✓ | ✓ | ✓ | ✓ | — | |
| LWLock | ReplicationOrigin |
✓ | ✓ | ✓ | ✓ | ✓ | ✓ | — | |
| LWLock | ReplicationOriginState |
✓ | ✓ | ✓ | ✓ | ✓ | ✓ | — | |
| LWLock | ReplicationSlotAllocation |
✓ | ✓ | ✓ | ✓ | ✓ | ✓ | — | |
| LWLock | ReplicationSlotControl |
✓ | ✓ | ✓ | ✓ | ✓ | ✓ | — | |
| LWLock | ReplicationSlotIO |
✓ | ✓ | ✓ | ✓ | ✓ | ✓ | — | |
| LWLock | SInvalRead |
✓ | ✓ | ✓ | ✓ | ✓ | ✓ | — | |
| LWLock | SInvalWrite |
✓ | ✓ | ✓ | ✓ | ✓ | ✓ | — | |
| LWLock | SerialBuffer |
✓ | ✓ | ✓ | ✓ | ✓ | ✓ | — | |
| LWLock | SerialControl |
✓ | ✓ | — | |||||
| LWLock | SerialSLRU |
✓ | ✓ | ✓ | ✓ | ✓ | ✓ | — | |
| LWLock | SerializableFinishedList |
✓ | ✓ | ✓ | ✓ | ✓ | ✓ | — | |
| LWLock | SerializablePredicateList |
✓ | ✓ | ✓ | ✓ | ✓ | ✓ | — | |
| LWLock | SerializableXactHash |
✓ | ✓ | ✓ | ✓ | ✓ | ✓ | — | |
| LWLock | SharedTidBitmap |
✓ | ✓ | ✓ | ✓ | ✓ | ✓ | — | |
| LWLock | SharedTupleStore |
✓ | ✓ | ✓ | ✓ | ✓ | ✓ | — | |
| LWLock | ShmemIndex |
✓ | ✓ | ✓ | ✓ | ✓ | ✓ | — | |
| LWLock | SubtransBuffer |
✓ | ✓ | ✓ | ✓ | ✓ | ✓ | — | |
| LWLock | SubtransSLRU |
✓ | ✓ | ✓ | ✓ | ✓ | ✓ | — | |
| LWLock | SyncRep |
✓ | ✓ | ✓ | ✓ | ✓ | ✓ | — | |
| LWLock | SyncScan |
✓ | ✓ | ✓ | ✓ | ✓ | ✓ | — | |
| LWLock | TablespaceCreate |
✓ | ✓ | ✓ | ✓ | ✓ | ✓ | — | |
| LWLock | TwoPhaseState |
✓ | ✓ | ✓ | ✓ | ✓ | ✓ | — | |
| LWLock | WALBufMapping |
✓ | ✓ | ✓ | ✓ | ✓ | ✓ | — | |
| LWLock | WALInsert |
✓ | ✓ | ✓ | ✓ | ✓ | ✓ | — | |
| LWLock | WALSummarizer |
✓ | ✓ | — | |||||
| LWLock | WALWrite |
✓ | ✓ | ✓ | ✓ | ✓ | ✓ | — | |
| LWLock | WaitEventCustom |
✓ | ✓ | — | |||||
| LWLock | WrapLimitsVacuum |
✓ | ✓ | ✓ | ✓ | ✓ | ✓ | — | |
| LWLock | XactBuffer |
✓ | ✓ | ✓ | ✓ | ✓ | ✓ | — | |
| LWLock | XactSLRU |
✓ | ✓ | ✓ | ✓ | ✓ | ✓ | — | |
| LWLock | XactTruncation |
✓ | ✓ | ✓ | ✓ | ✓ | ✓ | — | |
| LWLock | XidGen |
✓ | ✓ | ✓ | ✓ | ✓ | ✓ | — | |
| Timeout | BaseBackupThrottle |
✓ | ✓ | ✓ | ✓ | ✓ | ✓ | — | |
| Timeout | CheckpointWriteDelay |
✓ | ✓ | ✓ | ✓ | ✓ | — | ||
| Timeout | PgSleep |
✓ | ✓ | ✓ | ✓ | ✓ | ✓ | — | |
| Timeout | RecoveryApplyDelay |
✓ | ✓ | ✓ | ✓ | ✓ | ✓ | — | |
| Timeout | RecoveryRetrieveRetryInterval |
✓ | ✓ | ✓ | ✓ | ✓ | ✓ | — | |
| Timeout | RegisterSyncRequest |
✓ | ✓ | ✓ | ✓ | ✓ | ✓ | — | |
| Timeout | SpinDelay |
✓ | ✓ | ✓ | — | ||||
| Timeout | VacuumDelay |
✓ | ✓ | ✓ | ✓ | ✓ | ✓ | — | |
| Timeout | VacuumTruncate |
✓ | ✓ | ✓ | ✓ | — | |||
| Timeout | WalSummarizerError |
✓ | ✓ | — |
3 - 值班术语表
| 术语 | 在本大典中的含义 |
|---|---|
| 活动前台会话 | state = 'active' 的客户端后端;计算竞争占比时排除后台主循环。 |
| 快照占比 | 被采样活动前台会话中落在某一事件上的比例。它是分诊信号,不是耗时归因。 |
| 等待身份 | 某个发布版本实测的精确 (wait_event_type, wait_event) 拼写;改名前后在矩阵中保留独立行。 |
| 标准事件 | 一个语义档案,可以合并已经明确核验的历史拼写或类型迁移。 |
| 触发点 | 把等待事件标识传给 PostgreSQL 等待报告机制的源码路径。 |
| 目录定义 | 定义公共名称/描述的源码行;它本身并不能证明当前存在活动触发点。 |
| 休眠事件 | 具有完整负面源码证据的目录身份:已审计的小版本里没有活动核心报告点。 |
| 重量级锁 | SQL 可见的锁管理器对象,通常可通过 pg_locks 与 pg_blocking_pids() 诊断。 |
| LWLock / tranche | 保护共享内存状态的短时内部锁;tranche 提供显示出来的事件名称。 |
| SLRU | 保存事务相关元数据(如 pg_xact 与 multixact)的小型共享缓存及磁盘段集合。 |
| Buffer pin | 后端对共享缓冲页的临时声明:该页必须保持存在且结构稳定。 |
| 源码发布版本 | 精确审计标签,如 REL_18_6;行号绝不绑定到会漂移的 stable 分支。 |
本站阈值是运维默认值。PostgreSQL 并不保证“10%”或“五秒”在所有场景都坏;必须结合本集群基线与服务目标。
4 - Lock 等待
Lock 是最容易直接处置的一类:后端向锁管理器申请重量级锁,但不兼容的持有者尚未释放。与 LWLock 不同,这些等待通常在 pg_locks 中有对应行,pg_blocking_pids() 也能给出有效答案。
看阻塞图,不要只数受害者
二十个等待者可能都只是一个空闲事务的症状。先走到阻塞图最前端,再判断持有者是在做有效工作、已被遗弃,还是处于计划内 DDL/发布窗口。
- 正常: 普通写入或计划内 DDL 期间,亚秒级的锁交接。
- 关注: 任一面向用户的等待超过其延迟目标,或至少 10% 的活动会话等待同一个根阻塞者。
- 紧急: 根持有者是
idle in transaction、阻塞链持续增长、关键 DDL 阻塞流量,或死锁开始增加。
值得先认出的事件
| 事件 | 通常表示 |
|---|---|
| relation | 表/索引级锁冲突,常见于 DDL 对 DML |
| transactionid | 等待另一事务结束,常见于并发更新同一行 |
| tuple | 元组锁竞争或很长的行锁队列 |
| extend | 多个会话在扩展同一关系时串行化 |
| virtualxid | DDL 等待可能仍在使用对象的事务 |
| advisory | 应用自定义的 advisory lock 协调 |
阻塞者查询
常见误读
- 被列为阻塞者的会话并不一定可以安全终止;它可能是维护业务不变量的唯一写入者。
transactionid不代表事务 ID 即将耗尽。relation本身不说明具体关系;需要把pg_locks.relation关联到pg_class。- 增大
lock_timeout只改变受害者等多久,并不会移除阻塞者。
4.1 - Lock: advisory
advisory
版本PG 13-18
证据3 个源码位置
官方描述译文
等待获取用户 advisory lock。
| PG 13 | PG 14 | PG 15 | PG 16 | PG 17 | PG 18 |
|---|---|---|---|---|---|
| ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
触发机制
PG_WAIT_LOCK 位于 src/backend/storage/lmgr/proc.c:1487,是经 grep 核验的报告路径。公共身份/资源映射位于 src/backend/utils/activity/wait_event_names.txt:428。探针覆盖的操作是:等待获取用户 advisory lock。锁管理器无法立即授予 advisory 重量级锁;ProcSleep 报告等待,并把后端挂到该锁的等待队列,直到持有者释放或请求被取消。
正常还是麻烦?
- 正常: 普通写入或计划内 DDL 的亚秒级锁交接可能正常。
- 需要调查: 面向用户的等待超过延迟目标、阻塞链持续增长,或根持有者处于 idle in transaction 时,应当调查。
诊断 SQL
处置建议
- 沿 pg_blocking_pids 构建到根节点的阻塞图。
- 检查根持有者状态、事务年龄与业务目的。
- 确认最安全的根动作后,再选择取消、超时或调整负载顺序。
源码证据
- PostgreSQL 18.6 · src/backend/storage/lmgr/proc.c:1487 —
PG_WAIT_LOCK - PostgreSQL 18.6 · src/backend/utils/activity/wait_event_names.txt:428 —
advisory - PostgreSQL 18.6 · src/backend/utils/adt/lockfuncs.c:39 —
advisory
关联控制项与信号
4.2 - Lock: applytransaction
applytransaction
版本PG 16-18
证据3 个源码位置
官方描述译文
等待获取逻辑复制订阅端正在应用的远程事务上的锁。
| PG 13 | PG 14 | PG 15 | PG 16 | PG 17 | PG 18 |
|---|---|---|---|---|---|
| — | — | — | ✓ | ✓ | ✓ |
触发机制
PG_WAIT_LOCK 位于 src/backend/storage/lmgr/proc.c:1487,是经 grep 核验的报告路径。公共身份/资源映射位于 src/backend/utils/activity/wait_event_names.txt:429。探针覆盖的操作是:等待获取逻辑复制订阅端正在应用的远程事务上的锁。锁管理器无法立即授予 applytransaction 重量级锁;ProcSleep 报告等待,并把后端挂到该锁的等待队列,直到持有者释放或请求被取消。
正常还是麻烦?
- 正常: 普通写入或计划内 DDL 的亚秒级锁交接可能正常。
- 需要调查: 面向用户的等待超过延迟目标、阻塞链持续增长,或根持有者处于 idle in transaction 时,应当调查。
诊断 SQL
处置建议
- 沿 pg_blocking_pids 构建到根节点的阻塞图。
- 检查根持有者状态、事务年龄与业务目的。
- 确认最安全的根动作后,再选择取消、超时或调整负载顺序。
源码证据
- PostgreSQL 18.6 · src/backend/storage/lmgr/proc.c:1487 —
PG_WAIT_LOCK - PostgreSQL 18.6 · src/backend/utils/activity/wait_event_names.txt:429 —
applytransaction - PostgreSQL 18.6 · src/backend/utils/adt/lockfuncs.c:40 —
applytransaction
关联控制项与信号
4.3 - Lock: extend
extend
版本PG 13-18
证据3 个源码位置
官方描述译文
等待扩展 relation。
| PG 13 | PG 14 | PG 15 | PG 16 | PG 17 | PG 18 |
|---|---|---|---|---|---|
| ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
触发机制
PG_WAIT_LOCK 位于 src/backend/storage/lmgr/proc.c:1487,是经 grep 核验的报告路径。公共身份/资源映射位于 src/backend/utils/activity/wait_event_names.txt:419。探针覆盖的操作是:等待扩展 relation。锁管理器无法立即授予 extend 重量级锁;ProcSleep 报告等待,并把后端挂到该锁的等待队列,直到持有者释放或请求被取消。
正常还是麻烦?
- 正常: 普通写入或计划内 DDL 的亚秒级锁交接可能正常。
- 需要调查: 面向用户的等待超过延迟目标、阻塞链持续增长,或根持有者处于 idle in transaction 时,应当调查。
诊断 SQL
处置建议
- 沿 pg_blocking_pids 构建到根节点的阻塞图。
- 检查根持有者状态、事务年龄与业务目的。
- 确认最安全的根动作后,再选择取消、超时或调整负载顺序。
源码证据
- PostgreSQL 18.6 · src/backend/storage/lmgr/proc.c:1487 —
PG_WAIT_LOCK - PostgreSQL 18.6 · src/backend/utils/activity/wait_event_names.txt:419 —
extend - PostgreSQL 18.6 · src/backend/utils/adt/lockfuncs.c:30 —
extend
关联控制项与信号
4.4 - Lock: frozenid
frozenid
版本PG 13-18
证据3 个源码位置
官方描述译文
等待更新 pg_database.datfrozenxid 和 pg_database.datminmxid。
| PG 13 | PG 14 | PG 15 | PG 16 | PG 17 | PG 18 |
|---|---|---|---|---|---|
| ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
触发机制
PG_WAIT_LOCK 位于 src/backend/storage/lmgr/proc.c:1487,是经 grep 核验的报告路径。公共身份/资源映射位于 src/backend/utils/activity/wait_event_names.txt:420。探针覆盖的操作是:等待更新 pg_database.datfrozenxid 和 pg_database.datminmxid。锁管理器无法立即授予 frozenid 重量级锁;ProcSleep 报告等待,并把后端挂到该锁的等待队列,直到持有者释放或请求被取消。
正常还是麻烦?
- 正常: 普通写入或计划内 DDL 的亚秒级锁交接可能正常。
- 需要调查: 面向用户的等待超过延迟目标、阻塞链持续增长,或根持有者处于 idle in transaction 时,应当调查。
诊断 SQL
处置建议
- 沿 pg_blocking_pids 构建到根节点的阻塞图。
- 检查根持有者状态、事务年龄与业务目的。
- 确认最安全的根动作后,再选择取消、超时或调整负载顺序。
源码证据
- PostgreSQL 18.6 · src/backend/storage/lmgr/proc.c:1487 —
PG_WAIT_LOCK - PostgreSQL 18.6 · src/backend/utils/activity/wait_event_names.txt:420 —
frozenid - PostgreSQL 18.6 · src/backend/utils/adt/lockfuncs.c:31 —
frozenid
关联控制项与信号
4.5 - Lock: object
object
版本PG 13-18
证据3 个源码位置
官方描述译文
等待获取非 relation 数据库对象上的锁。
| PG 13 | PG 14 | PG 15 | PG 16 | PG 17 | PG 18 |
|---|---|---|---|---|---|
| ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
触发机制
PG_WAIT_LOCK 位于 src/backend/storage/lmgr/proc.c:1487,是经 grep 核验的报告路径。公共身份/资源映射位于 src/backend/utils/activity/wait_event_names.txt:426。探针覆盖的操作是:等待获取非 relation 数据库对象上的锁。锁管理器无法立即授予 object 重量级锁;ProcSleep 报告等待,并把后端挂到该锁的等待队列,直到持有者释放或请求被取消。
正常还是麻烦?
- 正常: 普通写入或计划内 DDL 的亚秒级锁交接可能正常。
- 需要调查: 面向用户的等待超过延迟目标、阻塞链持续增长,或根持有者处于 idle in transaction 时,应当调查。
诊断 SQL
处置建议
- 沿 pg_blocking_pids 构建到根节点的阻塞图。
- 检查根持有者状态、事务年龄与业务目的。
- 确认最安全的根动作后,再选择取消、超时或调整负载顺序。
源码证据
- PostgreSQL 18.6 · src/backend/storage/lmgr/proc.c:1487 —
PG_WAIT_LOCK - PostgreSQL 18.6 · src/backend/utils/activity/wait_event_names.txt:426 —
object - PostgreSQL 18.6 · src/backend/utils/adt/lockfuncs.c:37 —
object
关联控制项与信号
4.6 - Lock: page
page
版本PG 13-18
证据2 个源码位置
官方描述译文
等待获取 relation 页面上的锁。
| PG 13 | PG 14 | PG 15 | PG 16 | PG 17 | PG 18 |
|---|---|---|---|---|---|
| ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
触发机制
PG_WAIT_LOCK 位于 src/backend/storage/lmgr/proc.c:1487,是经 grep 核验的报告路径。公共身份/资源映射位于 src/backend/utils/activity/wait_event_names.txt:421。探针覆盖的操作是:等待获取 relation 页面上的锁。锁管理器无法立即授予 page 重量级锁;ProcSleep 报告等待,并把后端挂到该锁的等待队列,直到持有者释放或请求被取消。
正常还是麻烦?
- 正常: 普通写入或计划内 DDL 的亚秒级锁交接可能正常。
- 需要调查: 面向用户的等待超过延迟目标、阻塞链持续增长,或根持有者处于 idle in transaction 时,应当调查。
诊断 SQL
处置建议
- 沿 pg_blocking_pids 构建到根节点的阻塞图。
- 检查根持有者状态、事务年龄与业务目的。
- 确认最安全的根动作后,再选择取消、超时或调整负载顺序。
源码证据
- PostgreSQL 18.6 · src/backend/storage/lmgr/proc.c:1487 —
PG_WAIT_LOCK - PostgreSQL 18.6 · src/backend/utils/activity/wait_event_names.txt:421 —
page
关联控制项与信号
4.7 - Lock: relation
relation
版本PG 13-18
证据3 个源码位置
官方描述译文
等待获取 relation 上的锁。
| PG 13 | PG 14 | PG 15 | PG 16 | PG 17 | PG 18 |
|---|---|---|---|---|---|
| ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
触发机制
PG_WAIT_LOCK 位于 src/backend/storage/lmgr/proc.c:1487,是经 grep 核验的报告路径。公共身份/资源映射位于 src/backend/utils/activity/wait_event_names.txt:418。探针覆盖的操作是:等待获取 relation 上的锁。锁管理器无法立即授予 relation 重量级锁;ProcSleep 报告等待,并把后端挂到该锁的等待队列,直到持有者释放或请求被取消。
正常还是麻烦?
- 正常: 普通写入或计划内 DDL 的亚秒级锁交接可能正常。
- 需要调查: 面向用户的等待超过延迟目标、阻塞链持续增长,或根持有者处于 idle in transaction 时,应当调查。
诊断 SQL
处置建议
- 沿 pg_blocking_pids 构建到根节点的阻塞图。
- 检查根持有者状态、事务年龄与业务目的。
- 确认最安全的根动作后,再选择取消、超时或调整负载顺序。
源码证据
- PostgreSQL 18.6 · src/backend/storage/lmgr/proc.c:1487 —
PG_WAIT_LOCK - PostgreSQL 18.6 · src/backend/utils/activity/wait_event_names.txt:418 —
relation - PostgreSQL 18.6 · src/backend/utils/adt/lockfuncs.c:29 —
relation
关联控制项与信号
4.8 - Lock: spectoken
spectoken
版本PG 13-18
证据3 个源码位置
官方描述译文
等待获取推测式插入锁。
| PG 13 | PG 14 | PG 15 | PG 16 | PG 17 | PG 18 |
|---|---|---|---|---|---|
| ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
触发机制
PG_WAIT_LOCK 位于 src/backend/storage/lmgr/proc.c:1487,是经 grep 核验的报告路径。公共身份/资源映射位于 src/backend/utils/activity/wait_event_names.txt:425。探针覆盖的操作是:等待获取推测式插入锁。锁管理器无法立即授予 spectoken 重量级锁;ProcSleep 报告等待,并把后端挂到该锁的等待队列,直到持有者释放或请求被取消。
正常还是麻烦?
- 正常: 普通写入或计划内 DDL 的亚秒级锁交接可能正常。
- 需要调查: 面向用户的等待超过延迟目标、阻塞链持续增长,或根持有者处于 idle in transaction 时,应当调查。
诊断 SQL
处置建议
- 沿 pg_blocking_pids 构建到根节点的阻塞图。
- 检查根持有者状态、事务年龄与业务目的。
- 确认最安全的根动作后,再选择取消、超时或调整负载顺序。
源码证据
- PostgreSQL 18.6 · src/backend/storage/lmgr/proc.c:1487 —
PG_WAIT_LOCK - PostgreSQL 18.6 · src/backend/utils/activity/wait_event_names.txt:425 —
spectoken - PostgreSQL 18.6 · src/backend/utils/adt/lockfuncs.c:36 —
spectoken
关联控制项与信号
4.9 - Lock: transactionid
transactionid
版本PG 13-18
证据3 个源码位置
官方描述译文
等待事务结束。
| PG 13 | PG 14 | PG 15 | PG 16 | PG 17 | PG 18 |
|---|---|---|---|---|---|
| ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
触发机制
PG_WAIT_LOCK 位于 src/backend/storage/lmgr/proc.c:1487,是经 grep 核验的报告路径。公共身份/资源映射位于 src/backend/utils/activity/wait_event_names.txt:423。探针覆盖的操作是:等待事务结束。锁管理器无法立即授予 transactionid 重量级锁;ProcSleep 报告等待,并把后端挂到该锁的等待队列,直到持有者释放或请求被取消。
正常还是麻烦?
- 正常: 普通写入或计划内 DDL 的亚秒级锁交接可能正常。
- 需要调查: 面向用户的等待超过延迟目标、阻塞链持续增长,或根持有者处于 idle in transaction 时,应当调查。
诊断 SQL
处置建议
- 沿 pg_blocking_pids 构建到根节点的阻塞图。
- 检查根持有者状态、事务年龄与业务目的。
- 确认最安全的根动作后,再选择取消、超时或调整负载顺序。
源码证据
- PostgreSQL 18.6 · src/backend/storage/lmgr/proc.c:1487 —
PG_WAIT_LOCK - PostgreSQL 18.6 · src/backend/utils/activity/wait_event_names.txt:423 —
transactionid - PostgreSQL 18.6 · src/backend/utils/adt/lockfuncs.c:34 —
transactionid
关联控制项与信号
4.10 - Lock: tuple
tuple
版本PG 13-18
证据3 个源码位置
官方描述译文
等待获取 tuple 上的锁。
| PG 13 | PG 14 | PG 15 | PG 16 | PG 17 | PG 18 |
|---|---|---|---|---|---|
| ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
触发机制
PG_WAIT_LOCK 位于 src/backend/storage/lmgr/proc.c:1487,是经 grep 核验的报告路径。公共身份/资源映射位于 src/backend/utils/activity/wait_event_names.txt:422。探针覆盖的操作是:等待获取 tuple 上的锁。锁管理器无法立即授予 tuple 重量级锁;ProcSleep 报告等待,并把后端挂到该锁的等待队列,直到持有者释放或请求被取消。
正常还是麻烦?
- 正常: 普通写入或计划内 DDL 的亚秒级锁交接可能正常。
- 需要调查: 面向用户的等待超过延迟目标、阻塞链持续增长,或根持有者处于 idle in transaction 时,应当调查。
诊断 SQL
处置建议
- 沿 pg_blocking_pids 构建到根节点的阻塞图。
- 检查根持有者状态、事务年龄与业务目的。
- 确认最安全的根动作后,再选择取消、超时或调整负载顺序。
源码证据
- PostgreSQL 18.6 · src/backend/storage/lmgr/proc.c:1487 —
PG_WAIT_LOCK - PostgreSQL 18.6 · src/backend/utils/activity/wait_event_names.txt:422 —
tuple - PostgreSQL 18.6 · src/backend/utils/adt/lockfuncs.c:33 —
tuple
关联控制项与信号
4.11 - Lock: userlock
userlock
版本PG 13-18
证据3 个源码位置
官方描述译文
等待获取用户锁。
| PG 13 | PG 14 | PG 15 | PG 16 | PG 17 | PG 18 |
|---|---|---|---|---|---|
| ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
触发机制
PG_WAIT_LOCK 位于 src/backend/storage/lmgr/proc.c:1487,是经 grep 核验的报告路径。公共身份/资源映射位于 src/backend/utils/activity/wait_event_names.txt:427。探针覆盖的操作是:等待获取用户锁。锁管理器无法立即授予 userlock 重量级锁;ProcSleep 报告等待,并把后端挂到该锁的等待队列,直到持有者释放或请求被取消。
正常还是麻烦?
- 正常: 普通写入或计划内 DDL 的亚秒级锁交接可能正常。
- 需要调查: 面向用户的等待超过延迟目标、阻塞链持续增长,或根持有者处于 idle in transaction 时,应当调查。
诊断 SQL
处置建议
- 沿 pg_blocking_pids 构建到根节点的阻塞图。
- 检查根持有者状态、事务年龄与业务目的。
- 确认最安全的根动作后,再选择取消、超时或调整负载顺序。
源码证据
- PostgreSQL 18.6 · src/backend/storage/lmgr/proc.c:1487 —
PG_WAIT_LOCK - PostgreSQL 18.6 · src/backend/utils/activity/wait_event_names.txt:427 —
userlock - PostgreSQL 18.6 · src/backend/utils/adt/lockfuncs.c:38 —
userlock
关联控制项与信号
4.12 - Lock: virtualxid
virtualxid
版本PG 13-18
证据3 个源码位置
官方描述译文
等待获取虚拟事务 ID 锁。
| PG 13 | PG 14 | PG 15 | PG 16 | PG 17 | PG 18 |
|---|---|---|---|---|---|
| ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
触发机制
PG_WAIT_LOCK 位于 src/backend/storage/lmgr/proc.c:1487,是经 grep 核验的报告路径。公共身份/资源映射位于 src/backend/utils/activity/wait_event_names.txt:424。探针覆盖的操作是:等待获取虚拟事务 ID 锁。锁管理器无法立即授予 virtualxid 重量级锁;ProcSleep 报告等待,并把后端挂到该锁的等待队列,直到持有者释放或请求被取消。
正常还是麻烦?
- 正常: 普通写入或计划内 DDL 的亚秒级锁交接可能正常。
- 需要调查: 面向用户的等待超过延迟目标、阻塞链持续增长,或根持有者处于 idle in transaction 时,应当调查。
诊断 SQL
处置建议
- 沿 pg_blocking_pids 构建到根节点的阻塞图。
- 检查根持有者状态、事务年龄与业务目的。
- 确认最安全的根动作后,再选择取消、超时或调整负载顺序。
源码证据
- PostgreSQL 18.6 · src/backend/storage/lmgr/proc.c:1487 —
PG_WAIT_LOCK - PostgreSQL 18.6 · src/backend/utils/activity/wait_event_names.txt:424 —
virtualxid - PostgreSQL 18.6 · src/backend/utils/adt/lockfuncs.c:35 —
virtualxid
关联控制项与信号
5 - LWLock 等待
LWLock 表示后端没能立即取得保护内部共享内存结构的轻量级锁。它不是 SQL 行锁或表锁,pg_locks 通常也无法指出它的持有者。
重复采样 → 锁定一个热点 tranche → 与负载关联怎样阅读这一类
单张快照里的 LWLock 通常只是调度噪声。只有同一个名称在连续样本中反复出现,并且受影响前台会话的延迟同步上升时,才把它当成竞争。
- 正常: 生成 WAL、获取快照、查找缓冲区、清理或检查点期间短暂出现。
- 关注: 连续三张、间隔 1 秒的快照里,同一事件至少占活动前台后端的 10%。
- 紧急: 至少 25% 的活动前台后端堆在同一事件上,等待持续超过 5 秒,或吞吐同时断崖式下降。
这些百分比是现场分级阈值,不是 PostgreSQL 的保证值。必须与本集群基线比较,并排除本来就应在主循环中等待的后台进程。
值得先认出的十个事件
| 事件 | 受保护资源 | 常见现场 |
|---|---|---|
| BufferContent | 单个共享缓冲区的内容 | 大量会话访问同一热点页 |
| BufferMapping | 缓冲区映射表分区 | 工作集抖动或大规模并发扫描 |
| LockManager | 重量级锁管理器状态 | 锁数量爆炸、DDL 或锁风暴 |
| ProcArray | 共享进程/事务数组 | 获取快照与事务 ID 压力 |
| WALBufMapping | WAL 缓冲区页面映射 | 写入压力下 WAL buffer 快速换页 |
| WALInsert | WAL 插入状态 | 大量写会话在插入 WAL 时串行化 |
| WALWrite | WAL 缓冲区写协调 | WAL 写入或刷盘路径跟不上 |
| XactSLRU | 事务状态 SLRU | pg_xact 缓存抖动或检查很老的可见性 |
| MultiXactMemberSLRU | Multixact member SLRU | 大量行锁与 multixact 抖动 |
| SyncRep | 同步复制等待队列 | 提交确认与 sender 状态发生竞争 |
常见误读
- “LWLock 说明锁泄漏了。” 不是。它是短暂的内部临界区;持续、重复出现才是信号。
- “页面显示的查询就是持有者。”
pg_stat_activity.query属于等待者;持有者可能是走另一条源码路径的后端。 - “多加 CPU 就能解决。” 更多并发反而可能加剧共享内存热点。先确认受保护资源与负载形状。
- “
pg_locks能找出阻塞者。” 它覆盖重量级锁与谓词锁,不覆盖一般 LWLock 所有权。
页面级热点先看 BufferContent,写入密集集群先看 WALInsert。
5.1 - LWLock: AddinShmemInit
AddinShmemInit
版本PG 13-18
证据3 个源码位置
官方描述译文
等待管理扩展在共享内存中的空间分配。
| PG 13 | PG 14 | PG 15 | PG 16 | PG 17 | PG 18 |
|---|---|---|---|---|---|
| ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
触发机制
pgstat_report_wait_start 位于 src/backend/storage/lmgr/lwlock.c:739,是经 grep 核验的报告路径。公共身份/资源映射位于 src/backend/utils/activity/wait_event_names.txt:328。探针覆盖的操作是:等待管理扩展在共享内存中的空间分配。LWLockAcquire 无法立即取得显示为 AddinShmemInit 的轻量级锁 tranche;后端在内部共享内存资源上休眠时,通用 LWLock 报告器发布该 tranche 名称。
正常还是麻烦?
- 正常: 短暂内部临界区周围的零星样本属于正常。
- 需要调查: 若同一 tranche 在连续三次一秒采样中影响至少 10% 的活动前台会话,应当调查;达到 25% 或持续超过五秒按紧急处理。
诊断 SQL
处置建议
- 重复采样并锁定一个热点 tranche。
- 把它与受保护资源及当前负载阶段关联。
- 降低具体竞争源;增加并发可能让共享内存热点更糟。
源码证据
- PostgreSQL 18.6 · src/backend/storage/lmgr/lwlock.c:739 —
pgstat_report_wait_start - PostgreSQL 18.6 · src/backend/utils/activity/wait_event_names.txt:328 —
AddinShmemInit - PostgreSQL 18.6 · src/test/modules/injection_points/injection_points.c:136 —
AddinShmemInit
关联控制项与信号
- GUC: 无直接关联项。
- 指标: [metric:waiting_sessions] · [metric:wait_event_share]
5.2 - LWLock: AioUringCompletion
AioUringCompletion
版本PG 18
证据3 个源码位置
官方描述译文
等待另一个进程通过 io_uring 完成 I/O。
| PG 13 | PG 14 | PG 15 | PG 16 | PG 17 | PG 18 |
|---|---|---|---|---|---|
| — | — | — | — | — | ✓ |
触发机制
pgstat_report_wait_start 位于 src/backend/storage/lmgr/lwlock.c:739,是经 grep 核验的报告路径。公共身份/资源映射位于 src/backend/storage/lmgr/lwlock.c:180。探针覆盖的操作是:等待另一个进程通过 io_uring 完成 I/O。LWLockAcquire 无法立即取得显示为 AioUringCompletion 的轻量级锁 tranche;后端在内部共享内存资源上休眠时,通用 LWLock 报告器发布该 tranche 名称。
正常还是麻烦?
- 正常: 短暂内部临界区周围的零星样本属于正常。
- 需要调查: 若同一 tranche 在连续三次一秒采样中影响至少 10% 的活动前台会话,应当调查;达到 25% 或持续超过五秒按紧急处理。
诊断 SQL
处置建议
- 重复采样并锁定一个热点 tranche。
- 把它与受保护资源及当前负载阶段关联。
- 降低具体竞争源;增加并发可能让共享内存热点更糟。
源码证据
- PostgreSQL 18.6 · src/backend/storage/lmgr/lwlock.c:180 —
AioUringCompletion - PostgreSQL 18.6 · src/backend/storage/lmgr/lwlock.c:739 —
pgstat_report_wait_start - PostgreSQL 18.6 · src/backend/utils/activity/wait_event_names.txt:405 —
AioUringCompletion
关联控制项与信号
- GUC: 无直接关联项。
- 指标: [metric:waiting_sessions] · [metric:wait_event_share]
5.3 - LWLock: AioWorkerSubmissionQueue
AioWorkerSubmissionQueue
版本PG 18
证据3 个源码位置
官方描述译文
等待访问 AIO worker 提交队列。
| PG 13 | PG 14 | PG 15 | PG 16 | PG 17 | PG 18 |
|---|---|---|---|---|---|
| — | — | — | — | — | ✓ |
触发机制
pgstat_report_wait_start 位于 src/backend/storage/lmgr/lwlock.c:739,是经 grep 核验的报告路径。公共身份/资源映射位于 src/backend/storage/aio/method_worker.c:253。探针覆盖的操作是:等待访问 AIO worker 提交队列。LWLockAcquire 无法立即取得显示为 AioWorkerSubmissionQueue 的轻量级锁 tranche;后端在内部共享内存资源上休眠时,通用 LWLock 报告器发布该 tranche 名称。
正常还是麻烦?
- 正常: 短暂内部临界区周围的零星样本属于正常。
- 需要调查: 若同一 tranche 在连续三次一秒采样中影响至少 10% 的活动前台会话,应当调查;达到 25% 或持续超过五秒按紧急处理。
诊断 SQL
处置建议
- 重复采样并锁定一个热点 tranche。
- 把它与受保护资源及当前负载阶段关联。
- 降低具体竞争源;增加并发可能让共享内存热点更糟。
源码证据
- PostgreSQL 18.6 · src/backend/storage/aio/method_worker.c:253 —
AioWorkerSubmissionQueue - PostgreSQL 18.6 · src/backend/storage/lmgr/lwlock.c:739 —
pgstat_report_wait_start - PostgreSQL 18.6 · src/backend/utils/activity/wait_event_names.txt:355 —
AioWorkerSubmissionQueue
关联控制项与信号
- GUC: 无直接关联项。
- 指标: [metric:waiting_sessions] · [metric:wait_event_share]
5.4 - LWLock: AutoFile
AutoFile
版本PG 13-18
证据3 个源码位置
官方描述译文
等待更新 postgresql.auto.conf 文件。
| PG 13 | PG 14 | PG 15 | PG 16 | PG 17 | PG 18 |
|---|---|---|---|---|---|
| ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
触发机制
pgstat_report_wait_start 位于 src/backend/storage/lmgr/lwlock.c:739,是经 grep 核验的报告路径。公共身份/资源映射位于 src/backend/utils/activity/wait_event_names.txt:340。探针覆盖的操作是:等待更新 postgresql.auto.conf 文件。LWLockAcquire 无法立即取得显示为 AutoFile 的轻量级锁 tranche;后端在内部共享内存资源上休眠时,通用 LWLock 报告器发布该 tranche 名称。
正常还是麻烦?
- 正常: 短暂内部临界区周围的零星样本属于正常。
- 需要调查: 若同一 tranche 在连续三次一秒采样中影响至少 10% 的活动前台会话,应当调查;达到 25% 或持续超过五秒按紧急处理。
诊断 SQL
处置建议
- 重复采样并锁定一个热点 tranche。
- 把它与受保护资源及当前负载阶段关联。
- 降低具体竞争源;增加并发可能让共享内存热点更糟。
源码证据
- PostgreSQL 18.6 · src/backend/storage/lmgr/lwlock.c:739 —
pgstat_report_wait_start - PostgreSQL 18.6 · src/backend/utils/activity/wait_event_names.txt:340 —
AutoFile - PostgreSQL 18.6 · src/backend/utils/misc/guc.c:4760 —
AutoFile
关联控制项与信号
- GUC: 无直接关联项。
- 指标: [metric:waiting_sessions] · [metric:wait_event_share]
5.5 - LWLock: Autovacuum
Autovacuum
版本PG 13-18
证据3 个源码位置
官方描述译文
等待读取或更新 autovacuum worker 的当前状态。
| PG 13 | PG 14 | PG 15 | PG 16 | PG 17 | PG 18 |
|---|---|---|---|---|---|
| ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
触发机制
pgstat_report_wait_start 位于 src/backend/storage/lmgr/lwlock.c:739,是经 grep 核验的报告路径。公共身份/资源映射位于 src/backend/postmaster/autovacuum.c:611。探针覆盖的操作是:等待读取或更新 autovacuum worker 的当前状态。LWLockAcquire 无法立即取得显示为 Autovacuum 的轻量级锁 tranche;后端在内部共享内存资源上休眠时,通用 LWLock 报告器发布该 tranche 名称。
正常还是麻烦?
- 正常: 短暂内部临界区周围的零星样本属于正常。
- 需要调查: 若同一 tranche 在连续三次一秒采样中影响至少 10% 的活动前台会话,应当调查;达到 25% 或持续超过五秒按紧急处理。
诊断 SQL
处置建议
- 重复采样并锁定一个热点 tranche。
- 把它与受保护资源及当前负载阶段关联。
- 降低具体竞争源;增加并发可能让共享内存热点更糟。
源码证据
- PostgreSQL 18.6 · src/backend/postmaster/autovacuum.c:611 —
Autovacuum - PostgreSQL 18.6 · src/backend/storage/lmgr/lwlock.c:739 —
pgstat_report_wait_start - PostgreSQL 18.6 · src/backend/utils/activity/wait_event_names.txt:329 —
Autovacuum
关联控制项与信号
5.6 - LWLock: AutovacuumSchedule
AutovacuumSchedule
版本PG 13-18
证据3 个源码位置
官方描述译文
等待确认被选中进行 autovacuum 的表仍需要 vacuum。
| PG 13 | PG 14 | PG 15 | PG 16 | PG 17 | PG 18 |
|---|---|---|---|---|---|
| ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
触发机制
pgstat_report_wait_start 位于 src/backend/storage/lmgr/lwlock.c:739,是经 grep 核验的报告路径。公共身份/资源映射位于 src/backend/postmaster/autovacuum.c:2337。探针覆盖的操作是:等待确认被选中进行 autovacuum 的表仍需要 vacuum。LWLockAcquire 无法立即取得显示为 AutovacuumSchedule 的轻量级锁 tranche;后端在内部共享内存资源上休眠时,通用 LWLock 报告器发布该 tranche 名称。
正常还是麻烦?
- 正常: 短暂内部临界区周围的零星样本属于正常。
- 需要调查: 若同一 tranche 在连续三次一秒采样中影响至少 10% 的活动前台会话,应当调查;达到 25% 或持续超过五秒按紧急处理。
诊断 SQL
处置建议
- 重复采样并锁定一个热点 tranche。
- 把它与受保护资源及当前负载阶段关联。
- 降低具体竞争源;增加并发可能让共享内存热点更糟。
源码证据
- PostgreSQL 18.6 · src/backend/postmaster/autovacuum.c:2337 —
AutovacuumSchedule - PostgreSQL 18.6 · src/backend/storage/lmgr/lwlock.c:739 —
pgstat_report_wait_start - PostgreSQL 18.6 · src/backend/utils/activity/wait_event_names.txt:330 —
AutovacuumSchedule
关联控制项与信号
5.7 - LWLock: BackgroundWorker
BackgroundWorker
版本PG 13-18
证据3 个源码位置
官方描述译文
等待读取或更新后台 worker 的状态。
| PG 13 | PG 14 | PG 15 | PG 16 | PG 17 | PG 18 |
|---|---|---|---|---|---|
| ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
触发机制
pgstat_report_wait_start 位于 src/backend/storage/lmgr/lwlock.c:739,是经 grep 核验的报告路径。公共身份/资源映射位于 src/backend/postmaster/bgworker.c:1070。探针覆盖的操作是:等待读取或更新后台 worker 的状态。LWLockAcquire 无法立即取得显示为 BackgroundWorker 的轻量级锁 tranche;后端在内部共享内存资源上休眠时,通用 LWLock 报告器发布该 tranche 名称。
正常还是麻烦?
- 正常: 短暂内部临界区周围的零星样本属于正常。
- 需要调查: 若同一 tranche 在连续三次一秒采样中影响至少 10% 的活动前台会话,应当调查;达到 25% 或持续超过五秒按紧急处理。
诊断 SQL
处置建议
- 重复采样并锁定一个热点 tranche。
- 把它与受保护资源及当前负载阶段关联。
- 降低具体竞争源;增加并发可能让共享内存热点更糟。
源码证据
- PostgreSQL 18.6 · src/backend/postmaster/bgworker.c:1070 —
BackgroundWorker - PostgreSQL 18.6 · src/backend/storage/lmgr/lwlock.c:739 —
pgstat_report_wait_start - PostgreSQL 18.6 · src/backend/utils/activity/wait_event_names.txt:338 —
BackgroundWorker
关联控制项与信号
- GUC: 无直接关联项。
- 指标: [metric:waiting_sessions] · [metric:wait_event_share]
5.8 - LWLock: BtreeVacuum
BtreeVacuum
版本PG 13-18
证据3 个源码位置
官方描述译文
等待读取或更新 B-tree 索引中与 vacuum 相关的信息。
| PG 13 | PG 14 | PG 15 | PG 16 | PG 17 | PG 18 |
|---|---|---|---|---|---|
| ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
触发机制
pgstat_report_wait_start 位于 src/backend/storage/lmgr/lwlock.c:739,是经 grep 核验的报告路径。公共身份/资源映射位于 src/backend/access/nbtree/nbtutils.c:3519。探针覆盖的操作是:等待读取或更新 B-tree 索引中与 vacuum 相关的信息。LWLockAcquire 无法立即取得显示为 BtreeVacuum 的轻量级锁 tranche;后端在内部共享内存资源上休眠时,通用 LWLock 报告器发布该 tranche 名称。
正常还是麻烦?
- 正常: 短暂内部临界区周围的零星样本属于正常。
- 需要调查: 若同一 tranche 在连续三次一秒采样中影响至少 10% 的活动前台会话,应当调查;达到 25% 或持续超过五秒按紧急处理。
诊断 SQL
处置建议
- 重复采样并锁定一个热点 tranche。
- 把它与受保护资源及当前负载阶段关联。
- 降低具体竞争源;增加并发可能让共享内存热点更糟。
源码证据
- PostgreSQL 18.6 · src/backend/access/nbtree/nbtutils.c:3519 —
BtreeVacuum - PostgreSQL 18.6 · src/backend/storage/lmgr/lwlock.c:739 —
pgstat_report_wait_start - PostgreSQL 18.6 · src/backend/utils/activity/wait_event_names.txt:327 —
BtreeVacuum
关联控制项与信号
5.9 - LWLock: BufferContent
BufferContent
版本PG 13-18
证据3 个源码位置
官方描述译文
等待访问内存中的数据页。
| PG 13 | PG 14 | PG 15 | PG 16 | PG 17 | PG 18 |
|---|---|---|---|---|---|
| ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
触发机制
后端已经找到所需的共享缓冲区,但尚未取得该 buffer descriptor 的 content lock。堆表与索引代码在读取或修改内存页前都会取得此锁,因此大量工作进程访问同一页面时会在这里串行化。
正常还是麻烦?
- 正常: 并发读写共享页面时,零星而短暂的样本很常见。
- 需要调查: 大量前台会话连续命中时,通常指向热点堆表/索引页、向右增长的索引,或与业务同时访问相同块的维护任务。
诊断 SQL
处置建议
- 找出等待会话共同访问的关系与语句。
- 用页面与索引证据确认热点,不能只凭等待名称下结论。
- 先分散热点键、批量写入或错峰维护,再考虑容量调整。
源码证据
- PostgreSQL 18.6 · src/backend/storage/lmgr/lwlock.c:148 —
BufferContent - PostgreSQL 18.6 · src/backend/storage/lmgr/lwlock.c:739 —
pgstat_report_wait_start - PostgreSQL 18.6 · src/backend/utils/activity/wait_event_names.txt:373 —
BufferContent
关联控制项与信号
- GUC: [guc:shared_buffers]
- 指标: [metric:waiting_sessions] · [metric:wait_event_share] · [metric:statement_latency]
典型事故模式
单调递增键让并发 B-tree 插入集中到最右叶子页,BufferContent 与插入延迟同步上升。
5.10 - LWLock: BufferMapping
BufferMapping
版本PG 13-18
证据3 个源码位置
官方描述译文
等待将数据块关联到 buffer pool 中的 buffer。
| PG 13 | PG 14 | PG 15 | PG 16 | PG 17 | PG 18 |
|---|---|---|---|---|---|
| ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
触发机制
缓冲区管理器把 relation/fork/block 标签哈希到由 BufferMappingLock 保护的分区。查找、插入、淘汰和重新分配标签都会短暂取得该分区锁;大规模并发未命中或缓冲区抖动会增加碰撞。
正常还是麻烦?
- 正常: 页面进入或离开共享缓冲区时,短暂等待属于正常现象。
- 需要调查: 持续出现通常意味着工作集反复冲刷 shared buffers、大量并行扫描,或访问集中映射到少数分区。
诊断 SQL
处置建议
- 按数据库与语句关联缓冲命中率和读取量。
- 检查是否出现新扫描、缓存过小或并发突增。
- 先降低并发扫描扇出或修正访问路径,再决定是否扩大 shared_buffers。
源码证据
- PostgreSQL 18.6 · src/backend/storage/lmgr/lwlock.c:152 —
BufferMapping - PostgreSQL 18.6 · src/backend/storage/lmgr/lwlock.c:739 —
pgstat_report_wait_start - PostgreSQL 18.6 · src/backend/utils/activity/wait_event_names.txt:377 —
BufferMapping
关联控制项与信号
- GUC: [guc:shared_buffers] · [guc:max_parallel_workers_per_gather]
- 指标: [metric:waiting_sessions] · [metric:wait_event_share] · [metric:buffer_hit_ratio] · [metric:blocks_read]
典型事故模式
执行计划退化引发大量并发大扫描,缓冲映射分区变热,同时有用页面被挤出缓存。
5.11 - LWLock: Checkpoint
Checkpoint
版本PG 13
证据3 个源码位置
官方描述译文
等待开始执行检查点。
| PG 13 | PG 14 | PG 15 | PG 16 | PG 17 | PG 18 |
|---|---|---|---|---|---|
| ✓ | — | — | — | — | — |
触发机制
pgstat_report_wait_start 位于 src/backend/storage/lmgr/lwlock.c:765,是经 grep 核验的报告路径。公共身份/资源映射位于 src/backend/access/transam/xlog.c:8957。探针覆盖的操作是:等待开始执行检查点。LWLockAcquire 无法立即取得显示为 Checkpoint 的轻量级锁 tranche;后端在内部共享内存资源上休眠时,通用 LWLock 报告器发布该 tranche 名称。
正常还是麻烦?
- 正常: 短暂内部临界区周围的零星样本属于正常。
- 需要调查: 若同一 tranche 在连续三次一秒采样中影响至少 10% 的活动前台会话,应当调查;达到 25% 或持续超过五秒按紧急处理。
诊断 SQL
处置建议
- 重复采样并锁定一个热点 tranche。
- 把它与受保护资源及当前负载阶段关联。
- 降低具体竞争源;增加并发可能让共享内存热点更糟。
源码证据
- PostgreSQL 13.23 · src/backend/access/transam/xlog.c:8957 —
Checkpoint - PostgreSQL 13.23 · src/backend/storage/lmgr/lwlock.c:765 —
pgstat_report_wait_start - PostgreSQL 13.23 · src/backend/storage/lmgr/lwlocknames.c:14 —
Checkpoint
关联控制项与信号
5.12 - LWLock: CheckpointerComm
CheckpointerComm
版本PG 13-18
证据3 个源码位置
官方描述译文
等待管理 fsync 请求。
| PG 13 | PG 14 | PG 15 | PG 16 | PG 17 | PG 18 |
|---|---|---|---|---|---|
| ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
触发机制
pgstat_report_wait_start 位于 src/backend/storage/lmgr/lwlock.c:739,是经 grep 核验的报告路径。公共身份/资源映射位于 src/backend/postmaster/checkpointer.c:1164。探针覆盖的操作是:等待管理 fsync 请求。LWLockAcquire 无法立即取得显示为 CheckpointerComm 的轻量级锁 tranche;后端在内部共享内存资源上休眠时,通用 LWLock 报告器发布该 tranche 名称。
正常还是麻烦?
- 正常: 短暂内部临界区周围的零星样本属于正常。
- 需要调查: 若同一 tranche 在连续三次一秒采样中影响至少 10% 的活动前台会话,应当调查;达到 25% 或持续超过五秒按紧急处理。
诊断 SQL
处置建议
- 重复采样并锁定一个热点 tranche。
- 把它与受保护资源及当前负载阶段关联。
- 降低具体竞争源;增加并发可能让共享内存热点更糟。
源码证据
- PostgreSQL 18.6 · src/backend/postmaster/checkpointer.c:1164 —
CheckpointerComm - PostgreSQL 18.6 · src/backend/storage/lmgr/lwlock.c:739 —
pgstat_report_wait_start - PostgreSQL 18.6 · src/backend/utils/activity/wait_event_names.txt:324 —
CheckpointerComm
关联控制项与信号
5.13 - LWLock: CommitTs
CommitTs
版本PG 13-18
证据3 个源码位置
官方描述译文
等待读取或更新事务提交时间戳的最近设定值。
| PG 13 | PG 14 | PG 15 | PG 16 | PG 17 | PG 18 |
|---|---|---|---|---|---|
| ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
触发机制
pgstat_report_wait_start 位于 src/backend/storage/lmgr/lwlock.c:739,是经 grep 核验的报告路径。公共身份/资源映射位于 src/backend/access/transam/commit_ts.c:206。探针覆盖的操作是:等待读取或更新事务提交时间戳的最近设定值。LWLockAcquire 无法立即取得显示为 CommitTs 的轻量级锁 tranche;后端在内部共享内存资源上休眠时,通用 LWLock 报告器发布该 tranche 名称。
正常还是麻烦?
- 正常: 短暂内部临界区周围的零星样本属于正常。
- 需要调查: 若同一 tranche 在连续三次一秒采样中影响至少 10% 的活动前台会话,应当调查;达到 25% 或持续超过五秒按紧急处理。
诊断 SQL
处置建议
- 重复采样并锁定一个热点 tranche。
- 把它与受保护资源及当前负载阶段关联。
- 降低具体竞争源;增加并发可能让共享内存热点更糟。
源码证据
- PostgreSQL 18.6 · src/backend/access/transam/commit_ts.c:206 —
CommitTs - PostgreSQL 18.6 · src/backend/storage/lmgr/lwlock.c:739 —
pgstat_report_wait_start - PostgreSQL 18.6 · src/backend/utils/activity/wait_event_names.txt:343 —
CommitTs
关联控制项与信号
- GUC: 无直接关联项。
- 指标: [metric:waiting_sessions] · [metric:wait_event_share]
5.14 - LWLock: CommitTsBuffer
CommitTsBuffer
版本PG 13-18
证据3 个源码位置
官方描述译文
等待事务提交时间戳 SLRU buffer 上的 I/O。
| PG 13 | PG 14 | PG 15 | PG 16 | PG 17 | PG 18 |
|---|---|---|---|---|---|
| ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
触发机制
pgstat_report_wait_start 位于 src/backend/storage/lmgr/lwlock.c:739,是经 grep 核验的报告路径。公共身份/资源映射位于 src/backend/storage/lmgr/lwlock.c:141。探针覆盖的操作是:等待事务提交时间戳 SLRU buffer 上的 I/O。LWLockAcquire 无法立即取得显示为 CommitTsBuffer 的轻量级锁 tranche;后端在内部共享内存资源上休眠时,通用 LWLock 报告器发布该 tranche 名称。
正常还是麻烦?
- 正常: 短暂内部临界区周围的零星样本属于正常。
- 需要调查: 若同一 tranche 在连续三次一秒采样中影响至少 10% 的活动前台会话,应当调查;达到 25% 或持续超过五秒按紧急处理。
诊断 SQL
处置建议
- 重复采样并锁定一个热点 tranche。
- 把它与受保护资源及当前负载阶段关联。
- 降低具体竞争源;增加并发可能让共享内存热点更糟。
源码证据
- PostgreSQL 18.6 · src/backend/storage/lmgr/lwlock.c:141 —
CommitTsBuffer - PostgreSQL 18.6 · src/backend/storage/lmgr/lwlock.c:739 —
pgstat_report_wait_start - PostgreSQL 18.6 · src/backend/utils/activity/wait_event_names.txt:366 —
CommitTsBuffer
关联控制项与信号
- GUC: 无直接关联项。
- 指标: [metric:waiting_sessions] · [metric:wait_event_share]
5.15 - LWLock: CommitTsSLRU
CommitTsSLRU
版本PG 13-18
证据3 个源码位置
官方描述译文
等待访问事务提交时间戳 SLRU 缓存。
| PG 13 | PG 14 | PG 15 | PG 16 | PG 17 | PG 18 |
|---|---|---|---|---|---|
| ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
触发机制
pgstat_report_wait_start 位于 src/backend/storage/lmgr/lwlock.c:739,是经 grep 核验的报告路径。公共身份/资源映射位于 src/backend/storage/lmgr/lwlock.c:172。探针覆盖的操作是:等待访问事务提交时间戳 SLRU 缓存。LWLockAcquire 无法立即取得显示为 CommitTsSLRU 的轻量级锁 tranche;后端在内部共享内存资源上休眠时,通用 LWLock 报告器发布该 tranche 名称。
正常还是麻烦?
- 正常: 短暂内部临界区周围的零星样本属于正常。
- 需要调查: 若同一 tranche 在连续三次一秒采样中影响至少 10% 的活动前台会话,应当调查;达到 25% 或持续超过五秒按紧急处理。
诊断 SQL
处置建议
- 重复采样并锁定一个热点 tranche。
- 把它与受保护资源及当前负载阶段关联。
- 降低具体竞争源;增加并发可能让共享内存热点更糟。
源码证据
- PostgreSQL 18.6 · src/backend/storage/lmgr/lwlock.c:172 —
CommitTsSLRU - PostgreSQL 18.6 · src/backend/storage/lmgr/lwlock.c:739 —
pgstat_report_wait_start - PostgreSQL 18.6 · src/backend/utils/activity/wait_event_names.txt:397 —
CommitTsSLRU
关联控制项与信号
- GUC: 无直接关联项。
- 指标: [metric:waiting_sessions] · [metric:wait_event_share]
5.16 - LWLock: ControlFile
ControlFile
版本PG 13-18
证据3 个源码位置
官方描述译文
等待读取或更新 pg_control 文件,或创建新的 WAL 文件。
| PG 13 | PG 14 | PG 15 | PG 16 | PG 17 | PG 18 |
|---|---|---|---|---|---|
| ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
触发机制
pgstat_report_wait_start 位于 src/backend/storage/lmgr/lwlock.c:739,是经 grep 核验的报告路径。公共身份/资源映射位于 src/backend/access/transam/xlog.c:2723。探针覆盖的操作是:等待读取或更新 pg_control 文件,或创建新的 WAL 文件。LWLockAcquire 无法立即取得显示为 ControlFile 的轻量级锁 tranche;后端在内部共享内存资源上休眠时,通用 LWLock 报告器发布该 tranche 名称。
正常还是麻烦?
- 正常: 短暂内部临界区周围的零星样本属于正常。
- 需要调查: 若同一 tranche 在连续三次一秒采样中影响至少 10% 的活动前台会话,应当调查;达到 25% 或持续超过五秒按紧急处理。
诊断 SQL
处置建议
- 重复采样并锁定一个热点 tranche。
- 把它与受保护资源及当前负载阶段关联。
- 降低具体竞争源;增加并发可能让共享内存热点更糟。
源码证据
- PostgreSQL 18.6 · src/backend/access/transam/xlog.c:2723 —
ControlFile - PostgreSQL 18.6 · src/backend/storage/lmgr/lwlock.c:739 —
pgstat_report_wait_start - PostgreSQL 18.6 · src/backend/utils/activity/wait_event_names.txt:321 —
ControlFile
关联控制项与信号
- GUC: 无直接关联项。
- 指标: [metric:waiting_sessions] · [metric:wait_event_share]
5.17 - LWLock: DSMRegistry
DSMRegistry
版本PG 17-18
证据3 个源码位置
官方描述译文
等待读取或更新动态共享内存注册表。
| PG 13 | PG 14 | PG 15 | PG 16 | PG 17 | PG 18 |
|---|---|---|---|---|---|
| — | — | — | — | ✓ | ✓ |
触发机制
pgstat_report_wait_start 位于 src/backend/storage/lmgr/lwlock.c:739,是经 grep 核验的报告路径。公共身份/资源映射位于 src/backend/storage/ipc/dsm_registry.c:98。探针覆盖的操作是:等待读取或更新动态共享内存注册表。LWLockAcquire 无法立即取得显示为 DSMRegistry 的轻量级锁 tranche;后端在内部共享内存资源上休眠时,通用 LWLock 报告器发布该 tranche 名称。
正常还是麻烦?
- 正常: 短暂内部临界区周围的零星样本属于正常。
- 需要调查: 若同一 tranche 在连续三次一秒采样中影响至少 10% 的活动前台会话,应当调查;达到 25% 或持续超过五秒按紧急处理。
诊断 SQL
处置建议
- 重复采样并锁定一个热点 tranche。
- 把它与受保护资源及当前负载阶段关联。
- 降低具体竞争源;增加并发可能让共享内存热点更糟。
源码证据
- PostgreSQL 18.6 · src/backend/storage/ipc/dsm_registry.c:98 —
DSMRegistry - PostgreSQL 18.6 · src/backend/storage/lmgr/lwlock.c:739 —
pgstat_report_wait_start - PostgreSQL 18.6 · src/backend/utils/activity/wait_event_names.txt:352 —
DSMRegistry
关联控制项与信号
- GUC: 无直接关联项。
- 指标: [metric:waiting_sessions] · [metric:wait_event_share]
5.18 - LWLock: DSMRegistryDSA
DSMRegistryDSA
版本PG 17-18
证据3 个源码位置
官方描述译文
等待访问动态共享内存注册表的动态共享内存分配器。
| PG 13 | PG 14 | PG 15 | PG 16 | PG 17 | PG 18 |
|---|---|---|---|---|---|
| — | — | — | — | ✓ | ✓ |
触发机制
pgstat_report_wait_start 位于 src/backend/storage/lmgr/lwlock.c:739,是经 grep 核验的报告路径。公共身份/资源映射位于 src/backend/storage/lmgr/lwlock.c:170。探针覆盖的操作是:等待访问动态共享内存注册表的动态共享内存分配器。LWLockAcquire 无法立即取得显示为 DSMRegistryDSA 的轻量级锁 tranche;后端在内部共享内存资源上休眠时,通用 LWLock 报告器发布该 tranche 名称。
正常还是麻烦?
- 正常: 短暂内部临界区周围的零星样本属于正常。
- 需要调查: 若同一 tranche 在连续三次一秒采样中影响至少 10% 的活动前台会话,应当调查;达到 25% 或持续超过五秒按紧急处理。
诊断 SQL
处置建议
- 重复采样并锁定一个热点 tranche。
- 把它与受保护资源及当前负载阶段关联。
- 降低具体竞争源;增加并发可能让共享内存热点更糟。
源码证据
- PostgreSQL 18.6 · src/backend/storage/lmgr/lwlock.c:170 —
DSMRegistryDSA - PostgreSQL 18.6 · src/backend/storage/lmgr/lwlock.c:739 —
pgstat_report_wait_start - PostgreSQL 18.6 · src/backend/utils/activity/wait_event_names.txt:395 —
DSMRegistryDSA
关联控制项与信号
- GUC: 无直接关联项。
- 指标: [metric:waiting_sessions] · [metric:wait_event_share]
5.19 - LWLock: DSMRegistryHash
DSMRegistryHash
版本PG 17-18
证据3 个源码位置
官方描述译文
等待访问动态共享内存注册表的共享哈希表。
| PG 13 | PG 14 | PG 15 | PG 16 | PG 17 | PG 18 |
|---|---|---|---|---|---|
| — | — | — | — | ✓ | ✓ |
触发机制
pgstat_report_wait_start 位于 src/backend/storage/lmgr/lwlock.c:739,是经 grep 核验的报告路径。公共身份/资源映射位于 src/backend/storage/lmgr/lwlock.c:171。探针覆盖的操作是:等待访问动态共享内存注册表的共享哈希表。LWLockAcquire 无法立即取得显示为 DSMRegistryHash 的轻量级锁 tranche;后端在内部共享内存资源上休眠时,通用 LWLock 报告器发布该 tranche 名称。
正常还是麻烦?
- 正常: 短暂内部临界区周围的零星样本属于正常。
- 需要调查: 若同一 tranche 在连续三次一秒采样中影响至少 10% 的活动前台会话,应当调查;达到 25% 或持续超过五秒按紧急处理。
诊断 SQL
处置建议
- 重复采样并锁定一个热点 tranche。
- 把它与受保护资源及当前负载阶段关联。
- 降低具体竞争源;增加并发可能让共享内存热点更糟。
源码证据
- PostgreSQL 18.6 · src/backend/storage/lmgr/lwlock.c:171 —
DSMRegistryHash - PostgreSQL 18.6 · src/backend/storage/lmgr/lwlock.c:739 —
pgstat_report_wait_start - PostgreSQL 18.6 · src/backend/utils/activity/wait_event_names.txt:396 —
DSMRegistryHash
关联控制项与信号
- GUC: 无直接关联项。
- 指标: [metric:waiting_sessions] · [metric:wait_event_share]
5.20 - LWLock: DynamicSharedMemoryControl
DynamicSharedMemoryControl
版本PG 13-18
证据3 个源码位置
官方描述译文
等待读取或更新动态共享内存分配信息。
| PG 13 | PG 14 | PG 15 | PG 16 | PG 17 | PG 18 |
|---|---|---|---|---|---|
| ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
触发机制
pgstat_report_wait_start 位于 src/backend/storage/lmgr/lwlock.c:739,是经 grep 核验的报告路径。公共身份/资源映射位于 src/backend/storage/ipc/dsm.c:549。探针覆盖的操作是:等待读取或更新动态共享内存分配信息。LWLockAcquire 无法立即取得显示为 DynamicSharedMemoryControl 的轻量级锁 tranche;后端在内部共享内存资源上休眠时,通用 LWLock 报告器发布该 tranche 名称。
正常还是麻烦?
- 正常: 短暂内部临界区周围的零星样本属于正常。
- 需要调查: 若同一 tranche 在连续三次一秒采样中影响至少 10% 的活动前台会话,应当调查;达到 25% 或持续超过五秒按紧急处理。
诊断 SQL
处置建议
- 重复采样并锁定一个热点 tranche。
- 把它与受保护资源及当前负载阶段关联。
- 降低具体竞争源;增加并发可能让共享内存热点更糟。
源码证据
- PostgreSQL 18.6 · src/backend/storage/ipc/dsm.c:549 —
DynamicSharedMemoryControl - PostgreSQL 18.6 · src/backend/storage/lmgr/lwlock.c:739 —
pgstat_report_wait_start - PostgreSQL 18.6 · src/backend/utils/activity/wait_event_names.txt:339 —
DynamicSharedMemoryControl
关联控制项与信号
- GUC: 无直接关联项。
- 指标: [metric:waiting_sessions] · [metric:wait_event_share]
5.21 - LWLock: InjectionPoint
InjectionPoint
版本PG 17-18
证据3 个源码位置
官方描述译文
等待读取或更新与注入点相关的信息。
| PG 13 | PG 14 | PG 15 | PG 16 | PG 17 | PG 18 |
|---|---|---|---|---|---|
| — | — | — | — | ✓ | ✓ |
触发机制
pgstat_report_wait_start 位于 src/backend/storage/lmgr/lwlock.c:739,是经 grep 核验的报告路径。公共身份/资源映射位于 src/backend/utils/activity/wait_event_names.txt:353。探针覆盖的操作是:等待读取或更新与注入点相关的信息。LWLockAcquire 无法立即取得显示为 InjectionPoint 的轻量级锁 tranche;后端在内部共享内存资源上休眠时,通用 LWLock 报告器发布该 tranche 名称。
正常还是麻烦?
- 正常: 短暂内部临界区周围的零星样本属于正常。
- 需要调查: 若同一 tranche 在连续三次一秒采样中影响至少 10% 的活动前台会话,应当调查;达到 25% 或持续超过五秒按紧急处理。
诊断 SQL
处置建议
- 重复采样并锁定一个热点 tranche。
- 把它与受保护资源及当前负载阶段关联。
- 降低具体竞争源;增加并发可能让共享内存热点更糟。
源码证据
- PostgreSQL 18.6 · src/backend/storage/lmgr/lwlock.c:739 —
pgstat_report_wait_start - PostgreSQL 18.6 · src/backend/utils/activity/wait_event_names.txt:353 —
InjectionPoint - PostgreSQL 18.6 · src/backend/utils/misc/injection_point.c:302 —
InjectionPoint
关联控制项与信号
- GUC: 无直接关联项。
- 指标: [metric:waiting_sessions] · [metric:wait_event_share]
5.22 - LWLock: LockFastPath
LockFastPath
版本PG 13-18
证据3 个源码位置
官方描述译文
等待读取或更新进程的快速路径锁信息。
| PG 13 | PG 14 | PG 15 | PG 16 | PG 17 | PG 18 |
|---|---|---|---|---|---|
| ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
触发机制
pgstat_report_wait_start 位于 src/backend/storage/lmgr/lwlock.c:739,是经 grep 核验的报告路径。公共身份/资源映射位于 src/backend/storage/lmgr/lwlock.c:151。探针覆盖的操作是:等待读取或更新进程的快速路径锁信息。LWLockAcquire 无法立即取得显示为 LockFastPath 的轻量级锁 tranche;后端在内部共享内存资源上休眠时,通用 LWLock 报告器发布该 tranche 名称。
正常还是麻烦?
- 正常: 短暂内部临界区周围的零星样本属于正常。
- 需要调查: 若同一 tranche 在连续三次一秒采样中影响至少 10% 的活动前台会话,应当调查;达到 25% 或持续超过五秒按紧急处理。
诊断 SQL
处置建议
- 重复采样并锁定一个热点 tranche。
- 把它与受保护资源及当前负载阶段关联。
- 降低具体竞争源;增加并发可能让共享内存热点更糟。
源码证据
- PostgreSQL 18.6 · src/backend/storage/lmgr/lwlock.c:151 —
LockFastPath - PostgreSQL 18.6 · src/backend/storage/lmgr/lwlock.c:739 —
pgstat_report_wait_start - PostgreSQL 18.6 · src/backend/utils/activity/wait_event_names.txt:376 —
LockFastPath
关联控制项与信号
- GUC: 无直接关联项。
- 指标: [metric:waiting_sessions] · [metric:wait_event_share]
5.23 - LWLock: LockManager
LockManager
版本PG 13-18
证据3 个源码位置
官方描述译文
等待读取或更新“重量级”锁的信息。
| PG 13 | PG 14 | PG 15 | PG 16 | PG 17 | PG 18 |
|---|---|---|---|---|---|
| ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
触发机制
重量级锁的账本存放在由 LockHashPartitionLock 分区保护的共享哈希表中。获取、授予、释放或检查大量重量级锁时,即使不存在 SQL 层锁冲突,也可能在分区锁上竞争。
正常还是麻烦?
- 正常: 普通关系锁与事务锁流量会带来小规模突发。
- 需要调查: 持续占比通常来自锁扇出:超大事务、大量分区、频繁 DDL,或成千上万的排队锁请求。
诊断 SQL
处置建议
- 按 PID 统计 pg_locks 行数并检查阻塞树。
- 定位一次触碰大量关系或分区的语句。
- 缩短事务并降低锁扇出;只有真实容量报错时才提高 max_locks_per_transaction。
源码证据
- PostgreSQL 18.6 · src/backend/storage/ipc/ipci.c:117 —
LockManager - PostgreSQL 18.6 · src/backend/storage/lmgr/lwlock.c:739 —
pgstat_report_wait_start - PostgreSQL 18.6 · src/backend/utils/activity/wait_event_names.txt:378 —
LockManager
关联控制项与信号
- GUC: [guc:max_locks_per_transaction] · [guc:max_connections]
- 指标: [metric:waiting_sessions] · [metric:wait_event_share] · [metric:locks_per_backend] · [metric:blocked_sessions]
典型事故模式
发布过程对数千分区执行 DDL,同时业务会话获取关系锁;在明显阻塞者出现前,内部锁表已经发生竞争。
5.24 - LWLock: LogicalRepLauncherDSA
LogicalRepLauncherDSA
版本PG 16-18
证据3 个源码位置
官方描述译文
等待访问逻辑复制 launcher 的动态共享内存分配器。
| PG 13 | PG 14 | PG 15 | PG 16 | PG 17 | PG 18 |
|---|---|---|---|---|---|
| — | — | — | ✓ | ✓ | ✓ |
触发机制
pgstat_report_wait_start 位于 src/backend/storage/lmgr/lwlock.c:739,是经 grep 核验的报告路径。公共身份/资源映射位于 src/backend/storage/lmgr/lwlock.c:168。探针覆盖的操作是:等待访问逻辑复制 launcher 的动态共享内存分配器。LWLockAcquire 无法立即取得显示为 LogicalRepLauncherDSA 的轻量级锁 tranche;后端在内部共享内存资源上休眠时,通用 LWLock 报告器发布该 tranche 名称。
正常还是麻烦?
- 正常: 短暂内部临界区周围的零星样本属于正常。
- 需要调查: 若同一 tranche 在连续三次一秒采样中影响至少 10% 的活动前台会话,应当调查;达到 25% 或持续超过五秒按紧急处理。
诊断 SQL
处置建议
- 重复采样并锁定一个热点 tranche。
- 把它与受保护资源及当前负载阶段关联。
- 降低具体竞争源;增加并发可能让共享内存热点更糟。
源码证据
- PostgreSQL 18.6 · src/backend/storage/lmgr/lwlock.c:168 —
LogicalRepLauncherDSA - PostgreSQL 18.6 · src/backend/storage/lmgr/lwlock.c:739 —
pgstat_report_wait_start - PostgreSQL 18.6 · src/backend/utils/activity/wait_event_names.txt:393 —
LogicalRepLauncherDSA
关联控制项与信号
- GUC: 无直接关联项。
- 指标: [metric:waiting_sessions] · [metric:wait_event_share]
5.25 - LWLock: LogicalRepLauncherHash
LogicalRepLauncherHash
版本PG 16-18
证据3 个源码位置
官方描述译文
等待访问逻辑复制 launcher 的共享哈希表。
| PG 13 | PG 14 | PG 15 | PG 16 | PG 17 | PG 18 |
|---|---|---|---|---|---|
| — | — | — | ✓ | ✓ | ✓ |
触发机制
pgstat_report_wait_start 位于 src/backend/storage/lmgr/lwlock.c:739,是经 grep 核验的报告路径。公共身份/资源映射位于 src/backend/storage/lmgr/lwlock.c:169。探针覆盖的操作是:等待访问逻辑复制 launcher 的共享哈希表。LWLockAcquire 无法立即取得显示为 LogicalRepLauncherHash 的轻量级锁 tranche;后端在内部共享内存资源上休眠时,通用 LWLock 报告器发布该 tranche 名称。
正常还是麻烦?
- 正常: 短暂内部临界区周围的零星样本属于正常。
- 需要调查: 若同一 tranche 在连续三次一秒采样中影响至少 10% 的活动前台会话,应当调查;达到 25% 或持续超过五秒按紧急处理。
诊断 SQL
处置建议
- 重复采样并锁定一个热点 tranche。
- 把它与受保护资源及当前负载阶段关联。
- 降低具体竞争源;增加并发可能让共享内存热点更糟。
源码证据
- PostgreSQL 18.6 · src/backend/storage/lmgr/lwlock.c:169 —
LogicalRepLauncherHash - PostgreSQL 18.6 · src/backend/storage/lmgr/lwlock.c:739 —
pgstat_report_wait_start - PostgreSQL 18.6 · src/backend/utils/activity/wait_event_names.txt:394 —
LogicalRepLauncherHash
关联控制项与信号
- GUC: 无直接关联项。
- 指标: [metric:waiting_sessions] · [metric:wait_event_share]
5.26 - LWLock: LogicalRepWorker
LogicalRepWorker
版本PG 13-18
证据3 个源码位置
官方描述译文
等待读取或更新逻辑复制 worker 的状态。
| PG 13 | PG 14 | PG 15 | PG 16 | PG 17 | PG 18 |
|---|---|---|---|---|---|
| ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
触发机制
pgstat_report_wait_start 位于 src/backend/storage/lmgr/lwlock.c:739,是经 grep 核验的报告路径。公共身份/资源映射位于 src/backend/replication/logical/launcher.c:189。探针覆盖的操作是:等待读取或更新逻辑复制 worker 的状态。LWLockAcquire 无法立即取得显示为 LogicalRepWorker 的轻量级锁 tranche;后端在内部共享内存资源上休眠时,通用 LWLock 报告器发布该 tranche 名称。
正常还是麻烦?
- 正常: 短暂内部临界区周围的零星样本属于正常。
- 需要调查: 若同一 tranche 在连续三次一秒采样中影响至少 10% 的活动前台会话,应当调查;达到 25% 或持续超过五秒按紧急处理。
诊断 SQL
处置建议
- 重复采样并锁定一个热点 tranche。
- 把它与受保护资源及当前负载阶段关联。
- 降低具体竞争源;增加并发可能让共享内存热点更糟。
源码证据
- PostgreSQL 18.6 · src/backend/replication/logical/launcher.c:189 —
LogicalRepWorker - PostgreSQL 18.6 · src/backend/storage/lmgr/lwlock.c:739 —
pgstat_report_wait_start - PostgreSQL 18.6 · src/backend/utils/activity/wait_event_names.txt:346 —
LogicalRepWorker
关联控制项与信号
- GUC: 无直接关联项。
- 指标: [metric:waiting_sessions] · [metric:wait_event_share]
5.27 - LWLock: MultiXactGen
MultiXactGen
版本PG 13-18
证据3 个源码位置
官方描述译文
等待读取或更新共享 multixact 状态。
| PG 13 | PG 14 | PG 15 | PG 16 | PG 17 | PG 18 |
|---|---|---|---|---|---|
| ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
触发机制
pgstat_report_wait_start 位于 src/backend/storage/lmgr/lwlock.c:739,是经 grep 核验的报告路径。公共身份/资源映射位于 src/backend/access/transam/multixact.c:738。探针覆盖的操作是:等待读取或更新共享 multixact 状态。LWLockAcquire 无法立即取得显示为 MultiXactGen 的轻量级锁 tranche;后端在内部共享内存资源上休眠时,通用 LWLock 报告器发布该 tranche 名称。
正常还是麻烦?
- 正常: 短暂内部临界区周围的零星样本属于正常。
- 需要调查: 若同一 tranche 在连续三次一秒采样中影响至少 10% 的活动前台会话,应当调查;达到 25% 或持续超过五秒按紧急处理。
诊断 SQL
处置建议
- 重复采样并锁定一个热点 tranche。
- 把它与受保护资源及当前负载阶段关联。
- 降低具体竞争源;增加并发可能让共享内存热点更糟。
源码证据
- PostgreSQL 18.6 · src/backend/access/transam/multixact.c:738 —
MultiXactGen - PostgreSQL 18.6 · src/backend/storage/lmgr/lwlock.c:739 —
pgstat_report_wait_start - PostgreSQL 18.6 · src/backend/utils/activity/wait_event_names.txt:322 —
MultiXactGen
关联控制项与信号
5.28 - LWLock: MultiXactMemberBuffer
MultiXactMemberBuffer
版本PG 13-18
证据3 个源码位置
官方描述译文
等待 multixact member SLRU buffer 上的 I/O。
| PG 13 | PG 14 | PG 15 | PG 16 | PG 17 | PG 18 |
|---|---|---|---|---|---|
| ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
触发机制
pgstat_report_wait_start 位于 src/backend/storage/lmgr/lwlock.c:739,是经 grep 核验的报告路径。公共身份/资源映射位于 src/backend/storage/lmgr/lwlock.c:144。探针覆盖的操作是:等待 multixact member SLRU buffer 上的 I/O。LWLockAcquire 无法立即取得显示为 MultiXactMemberBuffer 的轻量级锁 tranche;后端在内部共享内存资源上休眠时,通用 LWLock 报告器发布该 tranche 名称。
正常还是麻烦?
- 正常: 短暂内部临界区周围的零星样本属于正常。
- 需要调查: 若同一 tranche 在连续三次一秒采样中影响至少 10% 的活动前台会话,应当调查;达到 25% 或持续超过五秒按紧急处理。
诊断 SQL
处置建议
- 重复采样并锁定一个热点 tranche。
- 把它与受保护资源及当前负载阶段关联。
- 降低具体竞争源;增加并发可能让共享内存热点更糟。
源码证据
- PostgreSQL 18.6 · src/backend/storage/lmgr/lwlock.c:144 —
MultiXactMemberBuffer - PostgreSQL 18.6 · src/backend/storage/lmgr/lwlock.c:739 —
pgstat_report_wait_start - PostgreSQL 18.6 · src/backend/utils/activity/wait_event_names.txt:369 —
MultiXactMemberBuffer
关联控制项与信号
5.29 - LWLock: MultiXactMemberSLRU
MultiXactMemberSLRU
版本PG 13-18
证据3 个源码位置
官方描述译文
等待访问 multixact member SLRU 缓存。
| PG 13 | PG 14 | PG 15 | PG 16 | PG 17 | PG 18 |
|---|---|---|---|---|---|
| ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
触发机制
此锁保护 pg_multixact/members 的 SLRU 缓存;这里保存共享行锁使用的 multitransaction ID 成员事务。并发行锁创建与旧成员查询会在这里相遇。
正常还是麻烦?
- 正常: 使用 SELECT FOR SHARE/KEY SHARE,或因外键检查创建 multixact 的负载中会短暂出现。
- 需要调查: 持续竞争指向大量共享行锁、multixact 抖动、冻结落后,或 pg_multixact 存储缓慢。
诊断 SQL
处置建议
- 找出制造大量共享行锁的语句与表。
- 检查 multixact 年龄与 autovacuum 进度。
- 降低锁扇出并解除 multixact 冻结阻塞;若同时出现 buffer 等待,再查 member SLRU I/O。
源码证据
- PostgreSQL 18.6 · src/backend/storage/lmgr/lwlock.c:174 —
MultiXactMemberSLRU - PostgreSQL 18.6 · src/backend/storage/lmgr/lwlock.c:739 —
pgstat_report_wait_start - PostgreSQL 18.6 · src/backend/utils/activity/wait_event_names.txt:399 —
MultiXactMemberSLRU
关联控制项与信号
- GUC: [guc:autovacuum_multixact_freeze_max_age] · [guc:vacuum_multixact_freeze_table_age]
- 指标: [metric:waiting_sessions] · [metric:wait_event_share] · [metric:oldest_multixact_age] · [metric:multixact_member_io]
典型事故模式
高扇出的外键负载锁住大量父表行,同时长事务推迟 multixact 清理,最终引发 member 缓存竞争。
5.30 - LWLock: MultiXactOffsetBuffer
MultiXactOffsetBuffer
版本PG 13-18
证据3 个源码位置
官方描述译文
等待 multixact offset SLRU buffer 上的 I/O。
| PG 13 | PG 14 | PG 15 | PG 16 | PG 17 | PG 18 |
|---|---|---|---|---|---|
| ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
触发机制
pgstat_report_wait_start 位于 src/backend/storage/lmgr/lwlock.c:739,是经 grep 核验的报告路径。公共身份/资源映射位于 src/backend/storage/lmgr/lwlock.c:143。探针覆盖的操作是:等待 multixact offset SLRU buffer 上的 I/O。LWLockAcquire 无法立即取得显示为 MultiXactOffsetBuffer 的轻量级锁 tranche;后端在内部共享内存资源上休眠时,通用 LWLock 报告器发布该 tranche 名称。
正常还是麻烦?
- 正常: 短暂内部临界区周围的零星样本属于正常。
- 需要调查: 若同一 tranche 在连续三次一秒采样中影响至少 10% 的活动前台会话,应当调查;达到 25% 或持续超过五秒按紧急处理。
诊断 SQL
处置建议
- 重复采样并锁定一个热点 tranche。
- 把它与受保护资源及当前负载阶段关联。
- 降低具体竞争源;增加并发可能让共享内存热点更糟。
源码证据
- PostgreSQL 18.6 · src/backend/storage/lmgr/lwlock.c:143 —
MultiXactOffsetBuffer - PostgreSQL 18.6 · src/backend/storage/lmgr/lwlock.c:739 —
pgstat_report_wait_start - PostgreSQL 18.6 · src/backend/utils/activity/wait_event_names.txt:368 —
MultiXactOffsetBuffer
关联控制项与信号
5.31 - LWLock: MultiXactOffsetSLRU
MultiXactOffsetSLRU
版本PG 13-18
证据3 个源码位置
官方描述译文
等待访问 multixact offset SLRU 缓存。
| PG 13 | PG 14 | PG 15 | PG 16 | PG 17 | PG 18 |
|---|---|---|---|---|---|
| ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
触发机制
pgstat_report_wait_start 位于 src/backend/storage/lmgr/lwlock.c:739,是经 grep 核验的报告路径。公共身份/资源映射位于 src/backend/storage/lmgr/lwlock.c:173。探针覆盖的操作是:等待访问 multixact offset SLRU 缓存。LWLockAcquire 无法立即取得显示为 MultiXactOffsetSLRU 的轻量级锁 tranche;后端在内部共享内存资源上休眠时,通用 LWLock 报告器发布该 tranche 名称。
正常还是麻烦?
- 正常: 短暂内部临界区周围的零星样本属于正常。
- 需要调查: 若同一 tranche 在连续三次一秒采样中影响至少 10% 的活动前台会话,应当调查;达到 25% 或持续超过五秒按紧急处理。
诊断 SQL
处置建议
- 重复采样并锁定一个热点 tranche。
- 把它与受保护资源及当前负载阶段关联。
- 降低具体竞争源;增加并发可能让共享内存热点更糟。
源码证据
- PostgreSQL 18.6 · src/backend/storage/lmgr/lwlock.c:173 —
MultiXactOffsetSLRU - PostgreSQL 18.6 · src/backend/storage/lmgr/lwlock.c:739 —
pgstat_report_wait_start - PostgreSQL 18.6 · src/backend/utils/activity/wait_event_names.txt:398 —
MultiXactOffsetSLRU
关联控制项与信号
5.32 - LWLock: MultiXactTruncation
MultiXactTruncation
版本PG 13-18
证据3 个源码位置
官方描述译文
等待读取或截断 multixact 信息。
| PG 13 | PG 14 | PG 15 | PG 16 | PG 17 | PG 18 |
|---|---|---|---|---|---|
| ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
触发机制
pgstat_report_wait_start 位于 src/backend/storage/lmgr/lwlock.c:739,是经 grep 核验的报告路径。公共身份/资源映射位于 src/backend/access/transam/multixact.c:2901。探针覆盖的操作是:等待读取或截断 multixact 信息。LWLockAcquire 无法立即取得显示为 MultiXactTruncation 的轻量级锁 tranche;后端在内部共享内存资源上休眠时,通用 LWLock 报告器发布该 tranche 名称。
正常还是麻烦?
- 正常: 短暂内部临界区周围的零星样本属于正常。
- 需要调查: 若同一 tranche 在连续三次一秒采样中影响至少 10% 的活动前台会话,应当调查;达到 25% 或持续超过五秒按紧急处理。
诊断 SQL
处置建议
- 重复采样并锁定一个热点 tranche。
- 把它与受保护资源及当前负载阶段关联。
- 降低具体竞争源;增加并发可能让共享内存热点更糟。
源码证据
- PostgreSQL 18.6 · src/backend/access/transam/multixact.c:2901 —
MultiXactTruncation - PostgreSQL 18.6 · src/backend/storage/lmgr/lwlock.c:739 —
pgstat_report_wait_start - PostgreSQL 18.6 · src/backend/utils/activity/wait_event_names.txt:345 —
MultiXactTruncation
关联控制项与信号
5.33 - LWLock: NotifyBuffer
NotifyBuffer
版本PG 13-18
证据3 个源码位置
官方描述译文
等待 NOTIFY 消息 SLRU buffer 上的 I/O。
| PG 13 | PG 14 | PG 15 | PG 16 | PG 17 | PG 18 |
|---|---|---|---|---|---|
| ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
触发机制
pgstat_report_wait_start 位于 src/backend/storage/lmgr/lwlock.c:739,是经 grep 核验的报告路径。公共身份/资源映射位于 src/backend/storage/lmgr/lwlock.c:145。探针覆盖的操作是:等待 NOTIFY 消息 SLRU buffer 上的 I/O。LWLockAcquire 无法立即取得显示为 NotifyBuffer 的轻量级锁 tranche;后端在内部共享内存资源上休眠时,通用 LWLock 报告器发布该 tranche 名称。
正常还是麻烦?
- 正常: 短暂内部临界区周围的零星样本属于正常。
- 需要调查: 若同一 tranche 在连续三次一秒采样中影响至少 10% 的活动前台会话,应当调查;达到 25% 或持续超过五秒按紧急处理。
诊断 SQL
处置建议
- 重复采样并锁定一个热点 tranche。
- 把它与受保护资源及当前负载阶段关联。
- 降低具体竞争源;增加并发可能让共享内存热点更糟。
源码证据
- PostgreSQL 18.6 · src/backend/storage/lmgr/lwlock.c:145 —
NotifyBuffer - PostgreSQL 18.6 · src/backend/storage/lmgr/lwlock.c:739 —
pgstat_report_wait_start - PostgreSQL 18.6 · src/backend/utils/activity/wait_event_names.txt:370 —
NotifyBuffer
关联控制项与信号
- GUC: 无直接关联项。
- 指标: [metric:waiting_sessions] · [metric:wait_event_share]
5.34 - LWLock: NotifyQueue
NotifyQueue
版本PG 13-18
证据3 个源码位置
官方描述译文
等待读取或更新 NOTIFY 消息。
| PG 13 | PG 14 | PG 15 | PG 16 | PG 17 | PG 18 |
|---|---|---|---|---|---|
| ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
触发机制
pgstat_report_wait_start 位于 src/backend/storage/lmgr/lwlock.c:739,是经 grep 核验的报告路径。公共身份/资源映射位于 src/backend/commands/async.c:940。探针覆盖的操作是:等待读取或更新 NOTIFY 消息。LWLockAcquire 无法立即取得显示为 NotifyQueue 的轻量级锁 tranche;后端在内部共享内存资源上休眠时,通用 LWLock 报告器发布该 tranche 名称。
正常还是麻烦?
- 正常: 短暂内部临界区周围的零星样本属于正常。
- 需要调查: 若同一 tranche 在连续三次一秒采样中影响至少 10% 的活动前台会话,应当调查;达到 25% 或持续超过五秒按紧急处理。
诊断 SQL
处置建议
- 重复采样并锁定一个热点 tranche。
- 把它与受保护资源及当前负载阶段关联。
- 降低具体竞争源;增加并发可能让共享内存热点更糟。
源码证据
- PostgreSQL 18.6 · src/backend/commands/async.c:940 —
NotifyQueue - PostgreSQL 18.6 · src/backend/storage/lmgr/lwlock.c:739 —
pgstat_report_wait_start - PostgreSQL 18.6 · src/backend/utils/activity/wait_event_names.txt:333 —
NotifyQueue
关联控制项与信号
- GUC: 无直接关联项。
- 指标: [metric:waiting_sessions] · [metric:wait_event_share]
5.35 - LWLock: NotifyQueueTail
NotifyQueueTail
版本PG 13-18
证据3 个源码位置
官方描述译文
等待更新 NOTIFY 消息的存储上限。
| PG 13 | PG 14 | PG 15 | PG 16 | PG 17 | PG 18 |
|---|---|---|---|---|---|
| ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
触发机制
pgstat_report_wait_start 位于 src/backend/storage/lmgr/lwlock.c:739,是经 grep 核验的报告路径。公共身份/资源映射位于 src/backend/commands/async.c:2126。探针覆盖的操作是:等待更新 NOTIFY 消息的存储上限。LWLockAcquire 无法立即取得显示为 NotifyQueueTail 的轻量级锁 tranche;后端在内部共享内存资源上休眠时,通用 LWLock 报告器发布该 tranche 名称。
正常还是麻烦?
- 正常: 短暂内部临界区周围的零星样本属于正常。
- 需要调查: 若同一 tranche 在连续三次一秒采样中影响至少 10% 的活动前台会话,应当调查;达到 25% 或持续超过五秒按紧急处理。
诊断 SQL
处置建议
- 重复采样并锁定一个热点 tranche。
- 把它与受保护资源及当前负载阶段关联。
- 降低具体竞争源;增加并发可能让共享内存热点更糟。
源码证据
- PostgreSQL 18.6 · src/backend/commands/async.c:2126 —
NotifyQueueTail - PostgreSQL 18.6 · src/backend/storage/lmgr/lwlock.c:739 —
pgstat_report_wait_start - PostgreSQL 18.6 · src/backend/utils/activity/wait_event_names.txt:349 —
NotifyQueueTail
关联控制项与信号
- GUC: 无直接关联项。
- 指标: [metric:waiting_sessions] · [metric:wait_event_share]
5.36 - LWLock: NotifySLRU
NotifySLRU
版本PG 13-18
证据3 个源码位置
官方描述译文
等待访问 NOTIFY 消息 SLRU 缓存。
| PG 13 | PG 14 | PG 15 | PG 16 | PG 17 | PG 18 |
|---|---|---|---|---|---|
| ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
触发机制
pgstat_report_wait_start 位于 src/backend/storage/lmgr/lwlock.c:739,是经 grep 核验的报告路径。公共身份/资源映射位于 src/backend/storage/lmgr/lwlock.c:175。探针覆盖的操作是:等待访问 NOTIFY 消息 SLRU 缓存。LWLockAcquire 无法立即取得显示为 NotifySLRU 的轻量级锁 tranche;后端在内部共享内存资源上休眠时,通用 LWLock 报告器发布该 tranche 名称。
正常还是麻烦?
- 正常: 短暂内部临界区周围的零星样本属于正常。
- 需要调查: 若同一 tranche 在连续三次一秒采样中影响至少 10% 的活动前台会话,应当调查;达到 25% 或持续超过五秒按紧急处理。
诊断 SQL
处置建议
- 重复采样并锁定一个热点 tranche。
- 把它与受保护资源及当前负载阶段关联。
- 降低具体竞争源;增加并发可能让共享内存热点更糟。
源码证据
- PostgreSQL 18.6 · src/backend/storage/lmgr/lwlock.c:175 —
NotifySLRU - PostgreSQL 18.6 · src/backend/storage/lmgr/lwlock.c:739 —
pgstat_report_wait_start - PostgreSQL 18.6 · src/backend/utils/activity/wait_event_names.txt:400 —
NotifySLRU
关联控制项与信号
- GUC: 无直接关联项。
- 指标: [metric:waiting_sessions] · [metric:wait_event_share]
5.37 - LWLock: OidGen
OidGen
版本PG 13-18
证据3 个源码位置
官方描述译文
等待分配新的 OID。
| PG 13 | PG 14 | PG 15 | PG 16 | PG 17 | PG 18 |
|---|---|---|---|---|---|
| ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
触发机制
pgstat_report_wait_start 位于 src/backend/storage/lmgr/lwlock.c:739,是经 grep 核验的报告路径。公共身份/资源映射位于 src/backend/access/transam/varsup.c:563。探针覆盖的操作是:等待分配新的 OID。LWLockAcquire 无法立即取得显示为 OidGen 的轻量级锁 tranche;后端在内部共享内存资源上休眠时,通用 LWLock 报告器发布该 tranche 名称。
正常还是麻烦?
- 正常: 短暂内部临界区周围的零星样本属于正常。
- 需要调查: 若同一 tranche 在连续三次一秒采样中影响至少 10% 的活动前台会话,应当调查;达到 25% 或持续超过五秒按紧急处理。
诊断 SQL
处置建议
- 重复采样并锁定一个热点 tranche。
- 把它与受保护资源及当前负载阶段关联。
- 降低具体竞争源;增加并发可能让共享内存热点更糟。
源码证据
- PostgreSQL 18.6 · src/backend/access/transam/varsup.c:563 —
OidGen - PostgreSQL 18.6 · src/backend/storage/lmgr/lwlock.c:739 —
pgstat_report_wait_start - PostgreSQL 18.6 · src/backend/utils/activity/wait_event_names.txt:314 —
OidGen
关联控制项与信号
- GUC: 无直接关联项。
- 指标: [metric:waiting_sessions] · [metric:wait_event_share]
5.38 - LWLock: OldSnapshotTimeMap
OldSnapshotTimeMap
版本PG 13-16
证据2 个源码位置
官方描述译文
等待读取或更新旧快照控制信息。
| PG 13 | PG 14 | PG 15 | PG 16 | PG 17 | PG 18 |
|---|---|---|---|---|---|
| ✓ | ✓ | ✓ | ✓ | — | — |
触发机制
pgstat_report_wait_start 位于 src/backend/storage/lmgr/lwlock.c:750,是经 grep 核验的报告路径。公共身份/资源映射位于 src/backend/utils/time/snapmgr.c:1758。探针覆盖的操作是:等待读取或更新旧快照控制信息。LWLockAcquire 无法立即取得显示为 OldSnapshotTimeMap 的轻量级锁 tranche;后端在内部共享内存资源上休眠时,通用 LWLock 报告器发布该 tranche 名称。
正常还是麻烦?
- 正常: 短暂内部临界区周围的零星样本属于正常。
- 需要调查: 若同一 tranche 在连续三次一秒采样中影响至少 10% 的活动前台会话,应当调查;达到 25% 或持续超过五秒按紧急处理。
诊断 SQL
处置建议
- 重复采样并锁定一个热点 tranche。
- 把它与受保护资源及当前负载阶段关联。
- 降低具体竞争源;增加并发可能让共享内存热点更糟。
源码证据
- PostgreSQL 16.15 · src/backend/storage/lmgr/lwlock.c:750 —
pgstat_report_wait_start - PostgreSQL 16.15 · src/backend/utils/time/snapmgr.c:1758 —
OldSnapshotTimeMap
关联控制项与信号
- GUC: 无直接关联项。
- 指标: [metric:waiting_sessions] · [metric:wait_event_share]
5.39 - LWLock: ParallelAppend
ParallelAppend
版本PG 13-18
证据3 个源码位置
官方描述译文
执行 Parallel Append 计划期间,等待选择下一个子计划。
| PG 13 | PG 14 | PG 15 | PG 16 | PG 17 | PG 18 |
|---|---|---|---|---|---|
| ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
触发机制
pgstat_report_wait_start 位于 src/backend/storage/lmgr/lwlock.c:739,是经 grep 核验的报告路径。公共身份/资源映射位于 src/backend/executor/nodeAppend.c:69。探针覆盖的操作是:执行 Parallel Append 计划期间,等待选择下一个子计划。LWLockAcquire 无法立即取得显示为 ParallelAppend 的轻量级锁 tranche;后端在内部共享内存资源上休眠时,通用 LWLock 报告器发布该 tranche 名称。
正常还是麻烦?
- 正常: 短暂内部临界区周围的零星样本属于正常。
- 需要调查: 若同一 tranche 在连续三次一秒采样中影响至少 10% 的活动前台会话,应当调查;达到 25% 或持续超过五秒按紧急处理。
诊断 SQL
处置建议
- 重复采样并锁定一个热点 tranche。
- 把它与受保护资源及当前负载阶段关联。
- 降低具体竞争源;增加并发可能让共享内存热点更糟。
源码证据
- PostgreSQL 18.6 · src/backend/executor/nodeAppend.c:69 —
ParallelAppend - PostgreSQL 18.6 · src/backend/storage/lmgr/lwlock.c:739 —
pgstat_report_wait_start - PostgreSQL 18.6 · src/backend/utils/activity/wait_event_names.txt:388 —
ParallelAppend
关联控制项与信号
- GUC: 无直接关联项。
- 指标: [metric:waiting_sessions] · [metric:wait_event_share]
5.40 - LWLock: ParallelBtreeScan
ParallelBtreeScan
版本PG 18
证据3 个源码位置
官方描述译文
执行 Parallel B-tree Scan 计划期间,等待同步 worker。
| PG 13 | PG 14 | PG 15 | PG 16 | PG 17 | PG 18 |
|---|---|---|---|---|---|
| — | — | — | — | — | ✓ |
触发机制
pgstat_report_wait_start 位于 src/backend/storage/lmgr/lwlock.c:739,是经 grep 核验的报告路径。公共身份/资源映射位于 src/backend/storage/lmgr/lwlock.c:156。探针覆盖的操作是:执行 Parallel B-tree Scan 计划期间,等待同步 worker。LWLockAcquire 无法立即取得显示为 ParallelBtreeScan 的轻量级锁 tranche;后端在内部共享内存资源上休眠时,通用 LWLock 报告器发布该 tranche 名称。
正常还是麻烦?
- 正常: 短暂内部临界区周围的零星样本属于正常。
- 需要调查: 若同一 tranche 在连续三次一秒采样中影响至少 10% 的活动前台会话,应当调查;达到 25% 或持续超过五秒按紧急处理。
诊断 SQL
处置建议
- 重复采样并锁定一个热点 tranche。
- 把它与受保护资源及当前负载阶段关联。
- 降低具体竞争源;增加并发可能让共享内存热点更糟。
源码证据
- PostgreSQL 18.6 · src/backend/storage/lmgr/lwlock.c:156 —
ParallelBtreeScan - PostgreSQL 18.6 · src/backend/storage/lmgr/lwlock.c:739 —
pgstat_report_wait_start - PostgreSQL 18.6 · src/backend/utils/activity/wait_event_names.txt:381 —
ParallelBtreeScan
关联控制项与信号
- GUC: 无直接关联项。
- 指标: [metric:waiting_sessions] · [metric:wait_event_share]
5.41 - LWLock: ParallelHashJoin
ParallelHashJoin
版本PG 13-18
证据3 个源码位置
官方描述译文
执行 Parallel Hash Join 计划期间,等待同步 worker。
| PG 13 | PG 14 | PG 15 | PG 16 | PG 17 | PG 18 |
|---|---|---|---|---|---|
| ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
触发机制
pgstat_report_wait_start 位于 src/backend/storage/lmgr/lwlock.c:739,是经 grep 核验的报告路径。公共身份/资源映射位于 src/backend/executor/nodeHash.c:71。探针覆盖的操作是:执行 Parallel Hash Join 计划期间,等待同步 worker。LWLockAcquire 无法立即取得显示为 ParallelHashJoin 的轻量级锁 tranche;后端在内部共享内存资源上休眠时,通用 LWLock 报告器发布该 tranche 名称。
正常还是麻烦?
- 正常: 短暂内部临界区周围的零星样本属于正常。
- 需要调查: 若同一 tranche 在连续三次一秒采样中影响至少 10% 的活动前台会话,应当调查;达到 25% 或持续超过五秒按紧急处理。
诊断 SQL
处置建议
- 重复采样并锁定一个热点 tranche。
- 把它与受保护资源及当前负载阶段关联。
- 降低具体竞争源;增加并发可能让共享内存热点更糟。
源码证据
- PostgreSQL 18.6 · src/backend/executor/nodeHash.c:71 —
ParallelHashJoin - PostgreSQL 18.6 · src/backend/storage/lmgr/lwlock.c:739 —
pgstat_report_wait_start - PostgreSQL 18.6 · src/backend/utils/activity/wait_event_names.txt:380 —
ParallelHashJoin
关联控制项与信号
- GUC: 无直接关联项。
- 指标: [metric:waiting_sessions] · [metric:wait_event_share]
5.42 - LWLock: ParallelQueryDSA
ParallelQueryDSA
版本PG 13-18
证据3 个源码位置
官方描述译文
等待并行查询的动态共享内存分配。
| PG 13 | PG 14 | PG 15 | PG 16 | PG 17 | PG 18 |
|---|---|---|---|---|---|
| ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
触发机制
pgstat_report_wait_start 位于 src/backend/storage/lmgr/lwlock.c:739,是经 grep 核验的报告路径。公共身份/资源映射位于 src/backend/storage/lmgr/lwlock.c:157。探针覆盖的操作是:等待并行查询的动态共享内存分配。LWLockAcquire 无法立即取得显示为 ParallelQueryDSA 的轻量级锁 tranche;后端在内部共享内存资源上休眠时,通用 LWLock 报告器发布该 tranche 名称。
正常还是麻烦?
- 正常: 短暂内部临界区周围的零星样本属于正常。
- 需要调查: 若同一 tranche 在连续三次一秒采样中影响至少 10% 的活动前台会话,应当调查;达到 25% 或持续超过五秒按紧急处理。
诊断 SQL
处置建议
- 重复采样并锁定一个热点 tranche。
- 把它与受保护资源及当前负载阶段关联。
- 降低具体竞争源;增加并发可能让共享内存热点更糟。
源码证据
- PostgreSQL 18.6 · src/backend/storage/lmgr/lwlock.c:157 —
ParallelQueryDSA - PostgreSQL 18.6 · src/backend/storage/lmgr/lwlock.c:739 —
pgstat_report_wait_start - PostgreSQL 18.6 · src/backend/utils/activity/wait_event_names.txt:382 —
ParallelQueryDSA
关联控制项与信号
- GUC: 无直接关联项。
- 指标: [metric:waiting_sessions] · [metric:wait_event_share]
5.43 - LWLock: ParallelVacuumDSA
ParallelVacuumDSA
版本PG 17-18
证据3 个源码位置
官方描述译文
等待并行 vacuum 的动态共享内存分配。
| PG 13 | PG 14 | PG 15 | PG 16 | PG 17 | PG 18 |
|---|---|---|---|---|---|
| — | — | — | — | ✓ | ✓ |
触发机制
pgstat_report_wait_start 位于 src/backend/storage/lmgr/lwlock.c:739,是经 grep 核验的报告路径。公共身份/资源映射位于 src/backend/storage/lmgr/lwlock.c:179。探针覆盖的操作是:等待并行 vacuum 的动态共享内存分配。LWLockAcquire 无法立即取得显示为 ParallelVacuumDSA 的轻量级锁 tranche;后端在内部共享内存资源上休眠时,通用 LWLock 报告器发布该 tranche 名称。
正常还是麻烦?
- 正常: 短暂内部临界区周围的零星样本属于正常。
- 需要调查: 若同一 tranche 在连续三次一秒采样中影响至少 10% 的活动前台会话,应当调查;达到 25% 或持续超过五秒按紧急处理。
诊断 SQL
处置建议
- 重复采样并锁定一个热点 tranche。
- 把它与受保护资源及当前负载阶段关联。
- 降低具体竞争源;增加并发可能让共享内存热点更糟。
源码证据
- PostgreSQL 18.6 · src/backend/storage/lmgr/lwlock.c:179 —
ParallelVacuumDSA - PostgreSQL 18.6 · src/backend/storage/lmgr/lwlock.c:739 —
pgstat_report_wait_start - PostgreSQL 18.6 · src/backend/utils/activity/wait_event_names.txt:404 —
ParallelVacuumDSA
关联控制项与信号
5.44 - LWLock: PerSessionDSA
PerSessionDSA
版本PG 13-18
证据3 个源码位置
官方描述译文
等待并行查询的动态共享内存分配。
| PG 13 | PG 14 | PG 15 | PG 16 | PG 17 | PG 18 |
|---|---|---|---|---|---|
| ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
触发机制
pgstat_report_wait_start 位于 src/backend/storage/lmgr/lwlock.c:739,是经 grep 核验的报告路径。公共身份/资源映射位于 src/backend/storage/lmgr/lwlock.c:158。探针覆盖的操作是:等待并行查询的动态共享内存分配。LWLockAcquire 无法立即取得显示为 PerSessionDSA 的轻量级锁 tranche;后端在内部共享内存资源上休眠时,通用 LWLock 报告器发布该 tranche 名称。
正常还是麻烦?
- 正常: 短暂内部临界区周围的零星样本属于正常。
- 需要调查: 若同一 tranche 在连续三次一秒采样中影响至少 10% 的活动前台会话,应当调查;达到 25% 或持续超过五秒按紧急处理。
诊断 SQL
处置建议
- 重复采样并锁定一个热点 tranche。
- 把它与受保护资源及当前负载阶段关联。
- 降低具体竞争源;增加并发可能让共享内存热点更糟。
源码证据
- PostgreSQL 18.6 · src/backend/storage/lmgr/lwlock.c:158 —
PerSessionDSA - PostgreSQL 18.6 · src/backend/storage/lmgr/lwlock.c:739 —
pgstat_report_wait_start - PostgreSQL 18.6 · src/backend/utils/activity/wait_event_names.txt:383 —
PerSessionDSA
关联控制项与信号
- GUC: 无直接关联项。
- 指标: [metric:waiting_sessions] · [metric:wait_event_share]
5.45 - LWLock: PerSessionRecordType
PerSessionRecordType
版本PG 13-18
证据3 个源码位置
官方描述译文
等待访问并行查询的复合类型信息。
| PG 13 | PG 14 | PG 15 | PG 16 | PG 17 | PG 18 |
|---|---|---|---|---|---|
| ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
触发机制
pgstat_report_wait_start 位于 src/backend/storage/lmgr/lwlock.c:739,是经 grep 核验的报告路径。公共身份/资源映射位于 src/backend/storage/lmgr/lwlock.c:159。探针覆盖的操作是:等待访问并行查询的复合类型信息。LWLockAcquire 无法立即取得显示为 PerSessionRecordType 的轻量级锁 tranche;后端在内部共享内存资源上休眠时,通用 LWLock 报告器发布该 tranche 名称。
正常还是麻烦?
- 正常: 短暂内部临界区周围的零星样本属于正常。
- 需要调查: 若同一 tranche 在连续三次一秒采样中影响至少 10% 的活动前台会话,应当调查;达到 25% 或持续超过五秒按紧急处理。
诊断 SQL
处置建议
- 重复采样并锁定一个热点 tranche。
- 把它与受保护资源及当前负载阶段关联。
- 降低具体竞争源;增加并发可能让共享内存热点更糟。
源码证据
- PostgreSQL 18.6 · src/backend/storage/lmgr/lwlock.c:159 —
PerSessionRecordType - PostgreSQL 18.6 · src/backend/storage/lmgr/lwlock.c:739 —
pgstat_report_wait_start - PostgreSQL 18.6 · src/backend/utils/activity/wait_event_names.txt:384 —
PerSessionRecordType
关联控制项与信号
- GUC: 无直接关联项。
- 指标: [metric:waiting_sessions] · [metric:wait_event_share]
5.46 - LWLock: PerSessionRecordTypmod
PerSessionRecordTypmod
版本PG 13-18
证据3 个源码位置
官方描述译文
等待访问并行查询中用于标识匿名 record 类型的类型修饰符信息。
| PG 13 | PG 14 | PG 15 | PG 16 | PG 17 | PG 18 |
|---|---|---|---|---|---|
| ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
触发机制
pgstat_report_wait_start 位于 src/backend/storage/lmgr/lwlock.c:739,是经 grep 核验的报告路径。公共身份/资源映射位于 src/backend/storage/lmgr/lwlock.c:160。探针覆盖的操作是:等待访问并行查询中用于标识匿名 record 类型的类型修饰符信息。LWLockAcquire 无法立即取得显示为 PerSessionRecordTypmod 的轻量级锁 tranche;后端在内部共享内存资源上休眠时,通用 LWLock 报告器发布该 tranche 名称。
正常还是麻烦?
- 正常: 短暂内部临界区周围的零星样本属于正常。
- 需要调查: 若同一 tranche 在连续三次一秒采样中影响至少 10% 的活动前台会话,应当调查;达到 25% 或持续超过五秒按紧急处理。
诊断 SQL
处置建议
- 重复采样并锁定一个热点 tranche。
- 把它与受保护资源及当前负载阶段关联。
- 降低具体竞争源;增加并发可能让共享内存热点更糟。
源码证据
- PostgreSQL 18.6 · src/backend/storage/lmgr/lwlock.c:160 —
PerSessionRecordTypmod - PostgreSQL 18.6 · src/backend/storage/lmgr/lwlock.c:739 —
pgstat_report_wait_start - PostgreSQL 18.6 · src/backend/utils/activity/wait_event_names.txt:385 —
PerSessionRecordTypmod
关联控制项与信号
- GUC: 无直接关联项。
- 指标: [metric:waiting_sessions] · [metric:wait_event_share]
5.47 - LWLock: PerXactPredicateList
PerXactPredicateList
版本PG 13-18
证据3 个源码位置
官方描述译文
并行查询期间,等待访问当前可串行化事务所持有的谓词锁列表。
| PG 13 | PG 14 | PG 15 | PG 16 | PG 17 | PG 18 |
|---|---|---|---|---|---|
| ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
触发机制
pgstat_report_wait_start 位于 src/backend/storage/lmgr/lwlock.c:739,是经 grep 核验的报告路径。公共身份/资源映射位于 src/backend/storage/lmgr/lwlock.c:164。探针覆盖的操作是:并行查询期间,等待访问当前可串行化事务所持有的谓词锁列表。LWLockAcquire 无法立即取得显示为 PerXactPredicateList 的轻量级锁 tranche;后端在内部共享内存资源上休眠时,通用 LWLock 报告器发布该 tranche 名称。
正常还是麻烦?
- 正常: 短暂内部临界区周围的零星样本属于正常。
- 需要调查: 若同一 tranche 在连续三次一秒采样中影响至少 10% 的活动前台会话,应当调查;达到 25% 或持续超过五秒按紧急处理。
诊断 SQL
处置建议
- 重复采样并锁定一个热点 tranche。
- 把它与受保护资源及当前负载阶段关联。
- 降低具体竞争源;增加并发可能让共享内存热点更糟。
源码证据
- PostgreSQL 18.6 · src/backend/storage/lmgr/lwlock.c:164 —
PerXactPredicateList - PostgreSQL 18.6 · src/backend/storage/lmgr/lwlock.c:739 —
pgstat_report_wait_start - PostgreSQL 18.6 · src/backend/utils/activity/wait_event_names.txt:389 —
PerXactPredicateList
关联控制项与信号
5.48 - LWLock: PgStatsDSA
PgStatsDSA
版本PG 15-18
证据3 个源码位置
官方描述译文
等待访问统计信息的动态共享内存分配器。
| PG 13 | PG 14 | PG 15 | PG 16 | PG 17 | PG 18 |
|---|---|---|---|---|---|
| — | — | ✓ | ✓ | ✓ | ✓ |
触发机制
pgstat_report_wait_start 位于 src/backend/storage/lmgr/lwlock.c:739,是经 grep 核验的报告路径。公共身份/资源映射位于 src/backend/storage/lmgr/lwlock.c:165。探针覆盖的操作是:等待访问统计信息的动态共享内存分配器。LWLockAcquire 无法立即取得显示为 PgStatsDSA 的轻量级锁 tranche;后端在内部共享内存资源上休眠时,通用 LWLock 报告器发布该 tranche 名称。
正常还是麻烦?
- 正常: 短暂内部临界区周围的零星样本属于正常。
- 需要调查: 若同一 tranche 在连续三次一秒采样中影响至少 10% 的活动前台会话,应当调查;达到 25% 或持续超过五秒按紧急处理。
诊断 SQL
处置建议
- 重复采样并锁定一个热点 tranche。
- 把它与受保护资源及当前负载阶段关联。
- 降低具体竞争源;增加并发可能让共享内存热点更糟。
源码证据
- PostgreSQL 18.6 · src/backend/storage/lmgr/lwlock.c:165 —
PgStatsDSA - PostgreSQL 18.6 · src/backend/storage/lmgr/lwlock.c:739 —
pgstat_report_wait_start - PostgreSQL 18.6 · src/backend/utils/activity/wait_event_names.txt:390 —
PgStatsDSA
关联控制项与信号
- GUC: 无直接关联项。
- 指标: [metric:waiting_sessions] · [metric:wait_event_share]
5.49 - LWLock: PgStatsData
PgStatsData
版本PG 15-18
证据3 个源码位置
官方描述译文
等待访问共享内存中的统计数据。
| PG 13 | PG 14 | PG 15 | PG 16 | PG 17 | PG 18 |
|---|---|---|---|---|---|
| — | — | ✓ | ✓ | ✓ | ✓ |
触发机制
pgstat_report_wait_start 位于 src/backend/storage/lmgr/lwlock.c:739,是经 grep 核验的报告路径。公共身份/资源映射位于 src/backend/storage/lmgr/lwlock.c:167。探针覆盖的操作是:等待访问共享内存中的统计数据。LWLockAcquire 无法立即取得显示为 PgStatsData 的轻量级锁 tranche;后端在内部共享内存资源上休眠时,通用 LWLock 报告器发布该 tranche 名称。
正常还是麻烦?
- 正常: 短暂内部临界区周围的零星样本属于正常。
- 需要调查: 若同一 tranche 在连续三次一秒采样中影响至少 10% 的活动前台会话,应当调查;达到 25% 或持续超过五秒按紧急处理。
诊断 SQL
处置建议
- 重复采样并锁定一个热点 tranche。
- 把它与受保护资源及当前负载阶段关联。
- 降低具体竞争源;增加并发可能让共享内存热点更糟。
源码证据
- PostgreSQL 18.6 · src/backend/storage/lmgr/lwlock.c:167 —
PgStatsData - PostgreSQL 18.6 · src/backend/storage/lmgr/lwlock.c:739 —
pgstat_report_wait_start - PostgreSQL 18.6 · src/backend/utils/activity/wait_event_names.txt:392 —
PgStatsData
关联控制项与信号
- GUC: 无直接关联项。
- 指标: [metric:waiting_sessions] · [metric:wait_event_share]
5.50 - LWLock: PgStatsHash
PgStatsHash
版本PG 15-18
证据3 个源码位置
官方描述译文
等待访问统计信息的共享内存哈希表。
| PG 13 | PG 14 | PG 15 | PG 16 | PG 17 | PG 18 |
|---|---|---|---|---|---|
| — | — | ✓ | ✓ | ✓ | ✓ |
触发机制
pgstat_report_wait_start 位于 src/backend/storage/lmgr/lwlock.c:739,是经 grep 核验的报告路径。公共身份/资源映射位于 src/backend/storage/lmgr/lwlock.c:166。探针覆盖的操作是:等待访问统计信息的共享内存哈希表。LWLockAcquire 无法立即取得显示为 PgStatsHash 的轻量级锁 tranche;后端在内部共享内存资源上休眠时,通用 LWLock 报告器发布该 tranche 名称。
正常还是麻烦?
- 正常: 短暂内部临界区周围的零星样本属于正常。
- 需要调查: 若同一 tranche 在连续三次一秒采样中影响至少 10% 的活动前台会话,应当调查;达到 25% 或持续超过五秒按紧急处理。
诊断 SQL
处置建议
- 重复采样并锁定一个热点 tranche。
- 把它与受保护资源及当前负载阶段关联。
- 降低具体竞争源;增加并发可能让共享内存热点更糟。
源码证据
- PostgreSQL 18.6 · src/backend/storage/lmgr/lwlock.c:166 —
PgStatsHash - PostgreSQL 18.6 · src/backend/storage/lmgr/lwlock.c:739 —
pgstat_report_wait_start - PostgreSQL 18.6 · src/backend/utils/activity/wait_event_names.txt:391 —
PgStatsHash
关联控制项与信号
- GUC: 无直接关联项。
- 指标: [metric:waiting_sessions] · [metric:wait_event_share]
5.51 - LWLock: PredicateLockManager
PredicateLockManager
版本PG 13-18
证据3 个源码位置
官方描述译文
等待访问可串行化事务使用的谓词锁信息。
| PG 13 | PG 14 | PG 15 | PG 16 | PG 17 | PG 18 |
|---|---|---|---|---|---|
| ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
触发机制
pgstat_report_wait_start 位于 src/backend/storage/lmgr/lwlock.c:739,是经 grep 核验的报告路径。公共身份/资源映射位于 src/backend/storage/lmgr/lwlock.c:154。探针覆盖的操作是:等待访问可串行化事务使用的谓词锁信息。LWLockAcquire 无法立即取得显示为 PredicateLockManager 的轻量级锁 tranche;后端在内部共享内存资源上休眠时,通用 LWLock 报告器发布该 tranche 名称。
正常还是麻烦?
- 正常: 短暂内部临界区周围的零星样本属于正常。
- 需要调查: 若同一 tranche 在连续三次一秒采样中影响至少 10% 的活动前台会话,应当调查;达到 25% 或持续超过五秒按紧急处理。
诊断 SQL
处置建议
- 重复采样并锁定一个热点 tranche。
- 把它与受保护资源及当前负载阶段关联。
- 降低具体竞争源;增加并发可能让共享内存热点更糟。
源码证据
- PostgreSQL 18.6 · src/backend/storage/lmgr/lwlock.c:154 —
PredicateLockManager - PostgreSQL 18.6 · src/backend/storage/lmgr/lwlock.c:739 —
pgstat_report_wait_start - PostgreSQL 18.6 · src/backend/utils/activity/wait_event_names.txt:379 —
PredicateLockManager
关联控制项与信号
- GUC: 无直接关联项。
- 指标: [metric:waiting_sessions] · [metric:wait_event_share]
5.52 - LWLock: ProcArray
ProcArray
版本PG 13-18
证据3 个源码位置
官方描述译文
等待访问共享的进程级数据结构(通常用于获取快照或报告会话的事务 ID)。
| PG 13 | PG 14 | PG 15 | PG 16 | PG 17 | PG 18 |
|---|---|---|---|---|---|
| ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
触发机制
ProcArrayLock 保护用于快照、事务可见性与事务结束处理的共享 PGPROC/PGXACT 数组。获取快照以及更新进程事务状态都必须短暂经过它协调。
正常还是麻烦?
- 正常: 大量事务开始与结束的繁忙 OLTP 系统中,短暂等待属于预期。
- 需要调查: 持续竞争可能伴随极高连接数、大量快照、长事务,或事务集中结束。
诊断 SQL
处置建议
- 测量活动后端与事务年龄,不要只看总连接数。
- 找出让可见性边界停滞的长事务与 idle in transaction 会话。
- 使用连接池、缩短事务,并避免大量微事务同步突发。
源码证据
- PostgreSQL 18.6 · src/backend/access/transam/xlog.c:6121 —
ProcArray - PostgreSQL 18.6 · src/backend/storage/lmgr/lwlock.c:739 —
pgstat_report_wait_start - PostgreSQL 18.6 · src/backend/utils/activity/wait_event_names.txt:316 —
ProcArray
关联控制项与信号
- GUC: [guc:max_connections] · [guc:idle_in_transaction_session_timeout]
- 指标: [metric:waiting_sessions] · [metric:wait_event_share] · [metric:active_backends] · [metric:oldest_transaction_age]
典型事故模式
应用重连风暴制造数千个短事务,同时报表查询持有旧快照,放大了 ProcArray 流量。
5.53 - LWLock: RelCacheInit
RelCacheInit
版本PG 13-18
证据3 个源码位置
官方描述译文
等待读取或更新 pg_internal.init relation cache 初始化文件。
| PG 13 | PG 14 | PG 15 | PG 16 | PG 17 | PG 18 |
|---|---|---|---|---|---|
| ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
触发机制
pgstat_report_wait_start 位于 src/backend/storage/lmgr/lwlock.c:739,是经 grep 核验的报告路径。公共身份/资源映射位于 src/backend/utils/activity/wait_event_names.txt:323。探针覆盖的操作是:等待读取或更新 pg_internal.init relation cache 初始化文件。LWLockAcquire 无法立即取得显示为 RelCacheInit 的轻量级锁 tranche;后端在内部共享内存资源上休眠时,通用 LWLock 报告器发布该 tranche 名称。
正常还是麻烦?
- 正常: 短暂内部临界区周围的零星样本属于正常。
- 需要调查: 若同一 tranche 在连续三次一秒采样中影响至少 10% 的活动前台会话,应当调查;达到 25% 或持续超过五秒按紧急处理。
诊断 SQL
处置建议
- 重复采样并锁定一个热点 tranche。
- 把它与受保护资源及当前负载阶段关联。
- 降低具体竞争源;增加并发可能让共享内存热点更糟。
源码证据
- PostgreSQL 18.6 · src/backend/storage/lmgr/lwlock.c:739 —
pgstat_report_wait_start - PostgreSQL 18.6 · src/backend/utils/activity/wait_event_names.txt:323 —
RelCacheInit - PostgreSQL 18.6 · src/backend/utils/cache/relcache.c:6765 —
RelCacheInit
关联控制项与信号
- GUC: 无直接关联项。
- 指标: [metric:waiting_sessions] · [metric:wait_event_share]
5.54 - LWLock: RelationMapping
RelationMapping
版本PG 13-18
证据3 个源码位置
官方描述译文
等待读取或更新 pg_filenode.map 文件(用于跟踪某些系统目录的 filenode 分配)。
| PG 13 | PG 14 | PG 15 | PG 16 | PG 17 | PG 18 |
|---|---|---|---|---|---|
| ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
触发机制
pgstat_report_wait_start 位于 src/backend/storage/lmgr/lwlock.c:739,是经 grep 核验的报告路径。公共身份/资源映射位于 src/backend/utils/activity/wait_event_names.txt:332。探针覆盖的操作是:等待读取或更新 pg_filenode.map 文件(用于跟踪某些系统目录的 filenode 分配)。LWLockAcquire 无法立即取得显示为 RelationMapping 的轻量级锁 tranche;后端在内部共享内存资源上休眠时,通用 LWLock 报告器发布该 tranche 名称。
正常还是麻烦?
- 正常: 短暂内部临界区周围的零星样本属于正常。
- 需要调查: 若同一 tranche 在连续三次一秒采样中影响至少 10% 的活动前台会话,应当调查;达到 25% 或持续超过五秒按紧急处理。
诊断 SQL
处置建议
- 重复采样并锁定一个热点 tranche。
- 把它与受保护资源及当前负载阶段关联。
- 降低具体竞争源;增加并发可能让共享内存热点更糟。
源码证据
- PostgreSQL 18.6 · src/backend/storage/lmgr/lwlock.c:739 —
pgstat_report_wait_start - PostgreSQL 18.6 · src/backend/utils/activity/wait_event_names.txt:332 —
RelationMapping - PostgreSQL 18.6 · src/backend/utils/cache/relmapper.c:311 —
RelationMapping
关联控制项与信号
- GUC: 无直接关联项。
- 指标: [metric:waiting_sessions] · [metric:wait_event_share]
5.55 - LWLock: ReplicationOrigin
ReplicationOrigin
版本PG 13-18
证据3 个源码位置
官方描述译文
等待创建、删除或使用复制源。
| PG 13 | PG 14 | PG 15 | PG 16 | PG 17 | PG 18 |
|---|---|---|---|---|---|
| ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
触发机制
pgstat_report_wait_start 位于 src/backend/storage/lmgr/lwlock.c:739,是经 grep 核验的报告路径。公共身份/资源映射位于 src/backend/replication/logical/origin.c:377。探针覆盖的操作是:等待创建、删除或使用复制源。LWLockAcquire 无法立即取得显示为 ReplicationOrigin 的轻量级锁 tranche;后端在内部共享内存资源上休眠时,通用 LWLock 报告器发布该 tranche 名称。
正常还是麻烦?
- 正常: 短暂内部临界区周围的零星样本属于正常。
- 需要调查: 若同一 tranche 在连续三次一秒采样中影响至少 10% 的活动前台会话,应当调查;达到 25% 或持续超过五秒按紧急处理。
诊断 SQL
处置建议
- 重复采样并锁定一个热点 tranche。
- 把它与受保护资源及当前负载阶段关联。
- 降低具体竞争源;增加并发可能让共享内存热点更糟。
源码证据
- PostgreSQL 18.6 · src/backend/replication/logical/origin.c:377 —
ReplicationOrigin - PostgreSQL 18.6 · src/backend/storage/lmgr/lwlock.c:739 —
pgstat_report_wait_start - PostgreSQL 18.6 · src/backend/utils/activity/wait_event_names.txt:344 —
ReplicationOrigin
关联控制项与信号
- GUC: 无直接关联项。
- 指标: [metric:waiting_sessions] · [metric:wait_event_share]
5.56 - LWLock: ReplicationOriginState
ReplicationOriginState
版本PG 13-18
证据3 个源码位置
官方描述译文
等待读取或更新一个复制源的进度。
| PG 13 | PG 14 | PG 15 | PG 16 | PG 17 | PG 18 |
|---|---|---|---|---|---|
| ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
触发机制
pgstat_report_wait_start 位于 src/backend/storage/lmgr/lwlock.c:739,是经 grep 核验的报告路径。公共身份/资源映射位于 src/backend/replication/logical/origin.c:557。探针覆盖的操作是:等待读取或更新一个复制源的进度。LWLockAcquire 无法立即取得显示为 ReplicationOriginState 的轻量级锁 tranche;后端在内部共享内存资源上休眠时,通用 LWLock 报告器发布该 tranche 名称。
正常还是麻烦?
- 正常: 短暂内部临界区周围的零星样本属于正常。
- 需要调查: 若同一 tranche 在连续三次一秒采样中影响至少 10% 的活动前台会话,应当调查;达到 25% 或持续超过五秒按紧急处理。
诊断 SQL
处置建议
- 重复采样并锁定一个热点 tranche。
- 把它与受保护资源及当前负载阶段关联。
- 降低具体竞争源;增加并发可能让共享内存热点更糟。
源码证据
- PostgreSQL 18.6 · src/backend/replication/logical/origin.c:557 —
ReplicationOriginState - PostgreSQL 18.6 · src/backend/storage/lmgr/lwlock.c:739 —
pgstat_report_wait_start - PostgreSQL 18.6 · src/backend/utils/activity/wait_event_names.txt:374 —
ReplicationOriginState
关联控制项与信号
- GUC: 无直接关联项。
- 指标: [metric:waiting_sessions] · [metric:wait_event_share]
5.57 - LWLock: ReplicationSlotAllocation
ReplicationSlotAllocation
版本PG 13-18
证据3 个源码位置
官方描述译文
等待分配或释放复制槽。
| PG 13 | PG 14 | PG 15 | PG 16 | PG 17 | PG 18 |
|---|---|---|---|---|---|
| ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
触发机制
pgstat_report_wait_start 位于 src/backend/storage/lmgr/lwlock.c:739,是经 grep 核验的报告路径。公共身份/资源映射位于 src/backend/replication/logical/slotsync.c:543。探针覆盖的操作是:等待分配或释放复制槽。LWLockAcquire 无法立即取得显示为 ReplicationSlotAllocation 的轻量级锁 tranche;后端在内部共享内存资源上休眠时,通用 LWLock 报告器发布该 tranche 名称。
正常还是麻烦?
- 正常: 短暂内部临界区周围的零星样本属于正常。
- 需要调查: 若同一 tranche 在连续三次一秒采样中影响至少 10% 的活动前台会话,应当调查;达到 25% 或持续超过五秒按紧急处理。
诊断 SQL
处置建议
- 重复采样并锁定一个热点 tranche。
- 把它与受保护资源及当前负载阶段关联。
- 降低具体竞争源;增加并发可能让共享内存热点更糟。
源码证据
- PostgreSQL 18.6 · src/backend/replication/logical/slotsync.c:543 —
ReplicationSlotAllocation - PostgreSQL 18.6 · src/backend/storage/lmgr/lwlock.c:739 —
pgstat_report_wait_start - PostgreSQL 18.6 · src/backend/utils/activity/wait_event_names.txt:341 —
ReplicationSlotAllocation
关联控制项与信号
- GUC: 无直接关联项。
- 指标: [metric:waiting_sessions] · [metric:wait_event_share]
5.58 - LWLock: ReplicationSlotControl
ReplicationSlotControl
版本PG 13-18
证据3 个源码位置
官方描述译文
等待读取或更新复制槽状态。
| PG 13 | PG 14 | PG 15 | PG 16 | PG 17 | PG 18 |
|---|---|---|---|---|---|
| ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
触发机制
pgstat_report_wait_start 位于 src/backend/storage/lmgr/lwlock.c:739,是经 grep 核验的报告路径。公共身份/资源映射位于 src/backend/replication/logical/logical.c:492。探针覆盖的操作是:等待读取或更新复制槽状态。LWLockAcquire 无法立即取得显示为 ReplicationSlotControl 的轻量级锁 tranche;后端在内部共享内存资源上休眠时,通用 LWLock 报告器发布该 tranche 名称。
正常还是麻烦?
- 正常: 短暂内部临界区周围的零星样本属于正常。
- 需要调查: 若同一 tranche 在连续三次一秒采样中影响至少 10% 的活动前台会话,应当调查;达到 25% 或持续超过五秒按紧急处理。
诊断 SQL
处置建议
- 重复采样并锁定一个热点 tranche。
- 把它与受保护资源及当前负载阶段关联。
- 降低具体竞争源;增加并发可能让共享内存热点更糟。
源码证据
- PostgreSQL 18.6 · src/backend/replication/logical/logical.c:492 —
ReplicationSlotControl - PostgreSQL 18.6 · src/backend/storage/lmgr/lwlock.c:739 —
pgstat_report_wait_start - PostgreSQL 18.6 · src/backend/utils/activity/wait_event_names.txt:342 —
ReplicationSlotControl
关联控制项与信号
- GUC: 无直接关联项。
- 指标: [metric:waiting_sessions] · [metric:wait_event_share]
5.59 - LWLock: ReplicationSlotIO
ReplicationSlotIO
版本PG 13-18
证据3 个源码位置
官方描述译文
等待复制槽上的 I/O。
| PG 13 | PG 14 | PG 15 | PG 16 | PG 17 | PG 18 |
|---|---|---|---|---|---|
| ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
触发机制
pgstat_report_wait_start 位于 src/backend/storage/lmgr/lwlock.c:739,是经 grep 核验的报告路径。公共身份/资源映射位于 src/backend/storage/lmgr/lwlock.c:150。探针覆盖的操作是:等待复制槽上的 I/O。LWLockAcquire 无法立即取得显示为 ReplicationSlotIO 的轻量级锁 tranche;后端在内部共享内存资源上休眠时,通用 LWLock 报告器发布该 tranche 名称。
正常还是麻烦?
- 正常: 短暂内部临界区周围的零星样本属于正常。
- 需要调查: 若同一 tranche 在连续三次一秒采样中影响至少 10% 的活动前台会话,应当调查;达到 25% 或持续超过五秒按紧急处理。
诊断 SQL
处置建议
- 重复采样并锁定一个热点 tranche。
- 把它与受保护资源及当前负载阶段关联。
- 降低具体竞争源;增加并发可能让共享内存热点更糟。
源码证据
- PostgreSQL 18.6 · src/backend/storage/lmgr/lwlock.c:150 —
ReplicationSlotIO - PostgreSQL 18.6 · src/backend/storage/lmgr/lwlock.c:739 —
pgstat_report_wait_start - PostgreSQL 18.6 · src/backend/utils/activity/wait_event_names.txt:375 —
ReplicationSlotIO
关联控制项与信号
- GUC: 无直接关联项。
- 指标: [metric:waiting_sessions] · [metric:wait_event_share]
5.60 - LWLock: SInvalRead
SInvalRead
版本PG 13-18
证据3 个源码位置
官方描述译文
等待从共享系统目录失效队列中取出消息。
| PG 13 | PG 14 | PG 15 | PG 16 | PG 17 | PG 18 |
|---|---|---|---|---|---|
| ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
触发机制
pgstat_report_wait_start 位于 src/backend/storage/lmgr/lwlock.c:739,是经 grep 核验的报告路径。公共身份/资源映射位于 src/backend/storage/ipc/sinvaladt.c:497。探针覆盖的操作是:等待从共享系统目录失效队列中取出消息。LWLockAcquire 无法立即取得显示为 SInvalRead 的轻量级锁 tranche;后端在内部共享内存资源上休眠时,通用 LWLock 报告器发布该 tranche 名称。
正常还是麻烦?
- 正常: 短暂内部临界区周围的零星样本属于正常。
- 需要调查: 若同一 tranche 在连续三次一秒采样中影响至少 10% 的活动前台会话,应当调查;达到 25% 或持续超过五秒按紧急处理。
诊断 SQL
处置建议
- 重复采样并锁定一个热点 tranche。
- 把它与受保护资源及当前负载阶段关联。
- 降低具体竞争源;增加并发可能让共享内存热点更糟。
源码证据
- PostgreSQL 18.6 · src/backend/storage/ipc/sinvaladt.c:497 —
SInvalRead - PostgreSQL 18.6 · src/backend/storage/lmgr/lwlock.c:739 —
pgstat_report_wait_start - PostgreSQL 18.6 · src/backend/utils/activity/wait_event_names.txt:317 —
SInvalRead
关联控制项与信号
- GUC: 无直接关联项。
- 指标: [metric:waiting_sessions] · [metric:wait_event_share]
5.61 - LWLock: SInvalWrite
SInvalWrite
版本PG 13-18
证据3 个源码位置
官方描述译文
等待向共享系统目录失效队列中添加消息。
| PG 13 | PG 14 | PG 15 | PG 16 | PG 17 | PG 18 |
|---|---|---|---|---|---|
| ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
触发机制
pgstat_report_wait_start 位于 src/backend/storage/lmgr/lwlock.c:739,是经 grep 核验的报告路径。公共身份/资源映射位于 src/backend/storage/ipc/sinvaladt.c:290。探针覆盖的操作是:等待向共享系统目录失效队列中添加消息。LWLockAcquire 无法立即取得显示为 SInvalWrite 的轻量级锁 tranche;后端在内部共享内存资源上休眠时,通用 LWLock 报告器发布该 tranche 名称。
正常还是麻烦?
- 正常: 短暂内部临界区周围的零星样本属于正常。
- 需要调查: 若同一 tranche 在连续三次一秒采样中影响至少 10% 的活动前台会话,应当调查;达到 25% 或持续超过五秒按紧急处理。
诊断 SQL
处置建议
- 重复采样并锁定一个热点 tranche。
- 把它与受保护资源及当前负载阶段关联。
- 降低具体竞争源;增加并发可能让共享内存热点更糟。
源码证据
- PostgreSQL 18.6 · src/backend/storage/ipc/sinvaladt.c:290 —
SInvalWrite - PostgreSQL 18.6 · src/backend/storage/lmgr/lwlock.c:739 —
pgstat_report_wait_start - PostgreSQL 18.6 · src/backend/utils/activity/wait_event_names.txt:318 —
SInvalWrite
关联控制项与信号
- GUC: 无直接关联项。
- 指标: [metric:waiting_sessions] · [metric:wait_event_share]
5.62 - LWLock: SerialBuffer
SerialBuffer
版本PG 13-18
证据3 个源码位置
官方描述译文
等待可串行化事务冲突 SLRU buffer 上的 I/O。
| PG 13 | PG 14 | PG 15 | PG 16 | PG 17 | PG 18 |
|---|---|---|---|---|---|
| ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
触发机制
pgstat_report_wait_start 位于 src/backend/storage/lmgr/lwlock.c:739,是经 grep 核验的报告路径。公共身份/资源映射位于 src/backend/storage/lmgr/lwlock.c:146。探针覆盖的操作是:等待可串行化事务冲突 SLRU buffer 上的 I/O。LWLockAcquire 无法立即取得显示为 SerialBuffer 的轻量级锁 tranche;后端在内部共享内存资源上休眠时,通用 LWLock 报告器发布该 tranche 名称。
正常还是麻烦?
- 正常: 短暂内部临界区周围的零星样本属于正常。
- 需要调查: 若同一 tranche 在连续三次一秒采样中影响至少 10% 的活动前台会话,应当调查;达到 25% 或持续超过五秒按紧急处理。
诊断 SQL
处置建议
- 重复采样并锁定一个热点 tranche。
- 把它与受保护资源及当前负载阶段关联。
- 降低具体竞争源;增加并发可能让共享内存热点更糟。
源码证据
- PostgreSQL 18.6 · src/backend/storage/lmgr/lwlock.c:146 —
SerialBuffer - PostgreSQL 18.6 · src/backend/storage/lmgr/lwlock.c:739 —
pgstat_report_wait_start - PostgreSQL 18.6 · src/backend/utils/activity/wait_event_names.txt:371 —
SerialBuffer
关联控制项与信号
- GUC: 无直接关联项。
- 指标: [metric:waiting_sessions] · [metric:wait_event_share]
5.63 - LWLock: SerialControl
SerialControl
版本PG 17-18
证据3 个源码位置
官方描述译文
等待读取或更新共享的 pg_serial 状态。
| PG 13 | PG 14 | PG 15 | PG 16 | PG 17 | PG 18 |
|---|---|---|---|---|---|
| — | — | — | — | ✓ | ✓ |
触发机制
pgstat_report_wait_start 位于 src/backend/storage/lmgr/lwlock.c:739,是经 grep 核验的报告路径。公共身份/资源映射位于 src/backend/storage/lmgr/predicate.c:835。探针覆盖的操作是:等待读取或更新共享的 pg_serial 状态。LWLockAcquire 无法立即取得显示为 SerialControl 的轻量级锁 tranche;后端在内部共享内存资源上休眠时,通用 LWLock 报告器发布该 tranche 名称。
正常还是麻烦?
- 正常: 短暂内部临界区周围的零星样本属于正常。
- 需要调查: 若同一 tranche 在连续三次一秒采样中影响至少 10% 的活动前台会话,应当调查;达到 25% 或持续超过五秒按紧急处理。
诊断 SQL
处置建议
- 重复采样并锁定一个热点 tranche。
- 把它与受保护资源及当前负载阶段关联。
- 降低具体竞争源;增加并发可能让共享内存热点更糟。
源码证据
- PostgreSQL 18.6 · src/backend/storage/lmgr/lwlock.c:739 —
pgstat_report_wait_start - PostgreSQL 18.6 · src/backend/storage/lmgr/predicate.c:835 —
SerialControl - PostgreSQL 18.6 · src/backend/utils/activity/wait_event_names.txt:354 —
SerialControl
关联控制项与信号
- GUC: 无直接关联项。
- 指标: [metric:waiting_sessions] · [metric:wait_event_share]
5.64 - LWLock: SerialSLRU
SerialSLRU
版本PG 13-18
证据3 个源码位置
官方描述译文
等待访问可串行化事务冲突 SLRU 缓存。
| PG 13 | PG 14 | PG 15 | PG 16 | PG 17 | PG 18 |
|---|---|---|---|---|---|
| ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
触发机制
pgstat_report_wait_start 位于 src/backend/storage/lmgr/lwlock.c:739,是经 grep 核验的报告路径。公共身份/资源映射位于 src/backend/storage/lmgr/lwlock.c:176。探针覆盖的操作是:等待访问可串行化事务冲突 SLRU 缓存。LWLockAcquire 无法立即取得显示为 SerialSLRU 的轻量级锁 tranche;后端在内部共享内存资源上休眠时,通用 LWLock 报告器发布该 tranche 名称。
正常还是麻烦?
- 正常: 短暂内部临界区周围的零星样本属于正常。
- 需要调查: 若同一 tranche 在连续三次一秒采样中影响至少 10% 的活动前台会话,应当调查;达到 25% 或持续超过五秒按紧急处理。
诊断 SQL
处置建议
- 重复采样并锁定一个热点 tranche。
- 把它与受保护资源及当前负载阶段关联。
- 降低具体竞争源;增加并发可能让共享内存热点更糟。
源码证据
- PostgreSQL 18.6 · src/backend/storage/lmgr/lwlock.c:176 —
SerialSLRU - PostgreSQL 18.6 · src/backend/storage/lmgr/lwlock.c:739 —
pgstat_report_wait_start - PostgreSQL 18.6 · src/backend/utils/activity/wait_event_names.txt:401 —
SerialSLRU
关联控制项与信号
- GUC: 无直接关联项。
- 指标: [metric:waiting_sessions] · [metric:wait_event_share]
5.65 - LWLock: SerializableFinishedList
SerializableFinishedList
版本PG 13-18
证据3 个源码位置
官方描述译文
等待访问已结束的可串行化事务列表。
| PG 13 | PG 14 | PG 15 | PG 16 | PG 17 | PG 18 |
|---|---|---|---|---|---|
| ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
触发机制
pgstat_report_wait_start 位于 src/backend/storage/lmgr/lwlock.c:739,是经 grep 核验的报告路径。公共身份/资源映射位于 src/backend/storage/lmgr/predicate.c:1507。探针覆盖的操作是:等待访问已结束的可串行化事务列表。LWLockAcquire 无法立即取得显示为 SerializableFinishedList 的轻量级锁 tranche;后端在内部共享内存资源上休眠时,通用 LWLock 报告器发布该 tranche 名称。
正常还是麻烦?
- 正常: 短暂内部临界区周围的零星样本属于正常。
- 需要调查: 若同一 tranche 在连续三次一秒采样中影响至少 10% 的活动前台会话,应当调查;达到 25% 或持续超过五秒按紧急处理。
诊断 SQL
处置建议
- 重复采样并锁定一个热点 tranche。
- 把它与受保护资源及当前负载阶段关联。
- 降低具体竞争源;增加并发可能让共享内存热点更糟。
源码证据
- PostgreSQL 18.6 · src/backend/storage/lmgr/lwlock.c:739 —
pgstat_report_wait_start - PostgreSQL 18.6 · src/backend/storage/lmgr/predicate.c:1507 —
SerializableFinishedList - PostgreSQL 18.6 · src/backend/utils/activity/wait_event_names.txt:335 —
SerializableFinishedList
关联控制项与信号
- GUC: 无直接关联项。
- 指标: [metric:waiting_sessions] · [metric:wait_event_share]
5.66 - LWLock: SerializablePredicateList
SerializablePredicateList
版本PG 13-18
证据3 个源码位置
官方描述译文
等待访问可串行化事务所持有的谓词锁列表。
| PG 13 | PG 14 | PG 15 | PG 16 | PG 17 | PG 18 |
|---|---|---|---|---|---|
| ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
触发机制
pgstat_report_wait_start 位于 src/backend/storage/lmgr/lwlock.c:739,是经 grep 核验的报告路径。公共身份/资源映射位于 src/backend/storage/lmgr/predicate.c:2220。探针覆盖的操作是:等待访问可串行化事务所持有的谓词锁列表。LWLockAcquire 无法立即取得显示为 SerializablePredicateList 的轻量级锁 tranche;后端在内部共享内存资源上休眠时,通用 LWLock 报告器发布该 tranche 名称。
正常还是麻烦?
- 正常: 短暂内部临界区周围的零星样本属于正常。
- 需要调查: 若同一 tranche 在连续三次一秒采样中影响至少 10% 的活动前台会话,应当调查;达到 25% 或持续超过五秒按紧急处理。
诊断 SQL
处置建议
- 重复采样并锁定一个热点 tranche。
- 把它与受保护资源及当前负载阶段关联。
- 降低具体竞争源;增加并发可能让共享内存热点更糟。
源码证据
- PostgreSQL 18.6 · src/backend/storage/lmgr/lwlock.c:739 —
pgstat_report_wait_start - PostgreSQL 18.6 · src/backend/storage/lmgr/predicate.c:2220 —
SerializablePredicateList - PostgreSQL 18.6 · src/backend/utils/activity/wait_event_names.txt:336 —
SerializablePredicateList
关联控制项与信号
- GUC: 无直接关联项。
- 指标: [metric:waiting_sessions] · [metric:wait_event_share]
5.67 - LWLock: SerializableXactHash
SerializableXactHash
版本PG 13-18
证据3 个源码位置
官方描述译文
等待读取或更新可串行化事务的信息。
| PG 13 | PG 14 | PG 15 | PG 16 | PG 17 | PG 18 |
|---|---|---|---|---|---|
| ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
触发机制
pgstat_report_wait_start 位于 src/backend/storage/lmgr/lwlock.c:739,是经 grep 核验的报告路径。公共身份/资源映射位于 src/backend/storage/lmgr/predicate.c:1462。探针覆盖的操作是:等待读取或更新可串行化事务的信息。LWLockAcquire 无法立即取得显示为 SerializableXactHash 的轻量级锁 tranche;后端在内部共享内存资源上休眠时,通用 LWLock 报告器发布该 tranche 名称。
正常还是麻烦?
- 正常: 短暂内部临界区周围的零星样本属于正常。
- 需要调查: 若同一 tranche 在连续三次一秒采样中影响至少 10% 的活动前台会话,应当调查;达到 25% 或持续超过五秒按紧急处理。
诊断 SQL
处置建议
- 重复采样并锁定一个热点 tranche。
- 把它与受保护资源及当前负载阶段关联。
- 降低具体竞争源;增加并发可能让共享内存热点更糟。
源码证据
- PostgreSQL 18.6 · src/backend/storage/lmgr/lwlock.c:739 —
pgstat_report_wait_start - PostgreSQL 18.6 · src/backend/storage/lmgr/predicate.c:1462 —
SerializableXactHash - PostgreSQL 18.6 · src/backend/utils/activity/wait_event_names.txt:334 —
SerializableXactHash
关联控制项与信号
5.68 - LWLock: SharedTidBitmap
SharedTidBitmap
版本PG 13-18
证据3 个源码位置
官方描述译文
并行 bitmap index scan 期间,等待访问共享 TID bitmap。
| PG 13 | PG 14 | PG 15 | PG 16 | PG 17 | PG 18 |
|---|---|---|---|---|---|
| ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
触发机制
pgstat_report_wait_start 位于 src/backend/storage/lmgr/lwlock.c:739,是经 grep 核验的报告路径。公共身份/资源映射位于 src/backend/storage/lmgr/lwlock.c:162。探针覆盖的操作是:并行 bitmap index scan 期间,等待访问共享 TID bitmap。LWLockAcquire 无法立即取得显示为 SharedTidBitmap 的轻量级锁 tranche;后端在内部共享内存资源上休眠时,通用 LWLock 报告器发布该 tranche 名称。
正常还是麻烦?
- 正常: 短暂内部临界区周围的零星样本属于正常。
- 需要调查: 若同一 tranche 在连续三次一秒采样中影响至少 10% 的活动前台会话,应当调查;达到 25% 或持续超过五秒按紧急处理。
诊断 SQL
处置建议
- 重复采样并锁定一个热点 tranche。
- 把它与受保护资源及当前负载阶段关联。
- 降低具体竞争源;增加并发可能让共享内存热点更糟。
源码证据
- PostgreSQL 18.6 · src/backend/storage/lmgr/lwlock.c:162 —
SharedTidBitmap - PostgreSQL 18.6 · src/backend/storage/lmgr/lwlock.c:739 —
pgstat_report_wait_start - PostgreSQL 18.6 · src/backend/utils/activity/wait_event_names.txt:387 —
SharedTidBitmap
关联控制项与信号
- GUC: 无直接关联项。
- 指标: [metric:waiting_sessions] · [metric:wait_event_share]
5.69 - LWLock: SharedTupleStore
SharedTupleStore
版本PG 13-18
证据3 个源码位置
官方描述译文
并行查询期间,等待访问共享 tuple store。
| PG 13 | PG 14 | PG 15 | PG 16 | PG 17 | PG 18 |
|---|---|---|---|---|---|
| ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
触发机制
pgstat_report_wait_start 位于 src/backend/storage/lmgr/lwlock.c:739,是经 grep 核验的报告路径。公共身份/资源映射位于 src/backend/storage/lmgr/lwlock.c:161。探针覆盖的操作是:并行查询期间,等待访问共享 tuple store。LWLockAcquire 无法立即取得显示为 SharedTupleStore 的轻量级锁 tranche;后端在内部共享内存资源上休眠时,通用 LWLock 报告器发布该 tranche 名称。
正常还是麻烦?
- 正常: 短暂内部临界区周围的零星样本属于正常。
- 需要调查: 若同一 tranche 在连续三次一秒采样中影响至少 10% 的活动前台会话,应当调查;达到 25% 或持续超过五秒按紧急处理。
诊断 SQL
处置建议
- 重复采样并锁定一个热点 tranche。
- 把它与受保护资源及当前负载阶段关联。
- 降低具体竞争源;增加并发可能让共享内存热点更糟。
源码证据
- PostgreSQL 18.6 · src/backend/storage/lmgr/lwlock.c:161 —
SharedTupleStore - PostgreSQL 18.6 · src/backend/storage/lmgr/lwlock.c:739 —
pgstat_report_wait_start - PostgreSQL 18.6 · src/backend/utils/activity/wait_event_names.txt:386 —
SharedTupleStore
关联控制项与信号
- GUC: 无直接关联项。
- 指标: [metric:waiting_sessions] · [metric:wait_event_share]
5.70 - LWLock: ShmemIndex
ShmemIndex
版本PG 13-18
证据3 个源码位置
官方描述译文
等待在共享内存中查找或分配空间。
| PG 13 | PG 14 | PG 15 | PG 16 | PG 17 | PG 18 |
|---|---|---|---|---|---|
| ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
触发机制
pgstat_report_wait_start 位于 src/backend/storage/lmgr/lwlock.c:739,是经 grep 核验的报告路径。公共身份/资源映射位于 src/backend/storage/ipc/shmem.c:392。探针覆盖的操作是:等待在共享内存中查找或分配空间。LWLockAcquire 无法立即取得显示为 ShmemIndex 的轻量级锁 tranche;后端在内部共享内存资源上休眠时,通用 LWLock 报告器发布该 tranche 名称。
正常还是麻烦?
- 正常: 短暂内部临界区周围的零星样本属于正常。
- 需要调查: 若同一 tranche 在连续三次一秒采样中影响至少 10% 的活动前台会话,应当调查;达到 25% 或持续超过五秒按紧急处理。
诊断 SQL
处置建议
- 重复采样并锁定一个热点 tranche。
- 把它与受保护资源及当前负载阶段关联。
- 降低具体竞争源;增加并发可能让共享内存热点更糟。
源码证据
- PostgreSQL 18.6 · src/backend/storage/ipc/shmem.c:392 —
ShmemIndex - PostgreSQL 18.6 · src/backend/storage/lmgr/lwlock.c:739 —
pgstat_report_wait_start - PostgreSQL 18.6 · src/backend/utils/activity/wait_event_names.txt:313 —
ShmemIndex
关联控制项与信号
- GUC: 无直接关联项。
- 指标: [metric:waiting_sessions] · [metric:wait_event_share]
5.71 - LWLock: SubtransBuffer
SubtransBuffer
版本PG 13-18
证据3 个源码位置
官方描述译文
等待子事务 SLRU buffer 上的 I/O。
| PG 13 | PG 14 | PG 15 | PG 16 | PG 17 | PG 18 |
|---|---|---|---|---|---|
| ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
触发机制
pgstat_report_wait_start 位于 src/backend/storage/lmgr/lwlock.c:739,是经 grep 核验的报告路径。公共身份/资源映射位于 src/backend/storage/lmgr/lwlock.c:142。探针覆盖的操作是:等待子事务 SLRU buffer 上的 I/O。LWLockAcquire 无法立即取得显示为 SubtransBuffer 的轻量级锁 tranche;后端在内部共享内存资源上休眠时,通用 LWLock 报告器发布该 tranche 名称。
正常还是麻烦?
- 正常: 短暂内部临界区周围的零星样本属于正常。
- 需要调查: 若同一 tranche 在连续三次一秒采样中影响至少 10% 的活动前台会话,应当调查;达到 25% 或持续超过五秒按紧急处理。
诊断 SQL
处置建议
- 重复采样并锁定一个热点 tranche。
- 把它与受保护资源及当前负载阶段关联。
- 降低具体竞争源;增加并发可能让共享内存热点更糟。
源码证据
- PostgreSQL 18.6 · src/backend/storage/lmgr/lwlock.c:142 —
SubtransBuffer - PostgreSQL 18.6 · src/backend/storage/lmgr/lwlock.c:739 —
pgstat_report_wait_start - PostgreSQL 18.6 · src/backend/utils/activity/wait_event_names.txt:367 —
SubtransBuffer
关联控制项与信号
- GUC: 无直接关联项。
- 指标: [metric:waiting_sessions] · [metric:wait_event_share]
5.72 - LWLock: SubtransSLRU
SubtransSLRU
版本PG 13-18
证据3 个源码位置
官方描述译文
等待访问子事务 SLRU 缓存。
| PG 13 | PG 14 | PG 15 | PG 16 | PG 17 | PG 18 |
|---|---|---|---|---|---|
| ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
触发机制
pgstat_report_wait_start 位于 src/backend/storage/lmgr/lwlock.c:739,是经 grep 核验的报告路径。公共身份/资源映射位于 src/backend/storage/lmgr/lwlock.c:177。探针覆盖的操作是:等待访问子事务 SLRU 缓存。LWLockAcquire 无法立即取得显示为 SubtransSLRU 的轻量级锁 tranche;后端在内部共享内存资源上休眠时,通用 LWLock 报告器发布该 tranche 名称。
正常还是麻烦?
- 正常: 短暂内部临界区周围的零星样本属于正常。
- 需要调查: 若同一 tranche 在连续三次一秒采样中影响至少 10% 的活动前台会话,应当调查;达到 25% 或持续超过五秒按紧急处理。
诊断 SQL
处置建议
- 重复采样并锁定一个热点 tranche。
- 把它与受保护资源及当前负载阶段关联。
- 降低具体竞争源;增加并发可能让共享内存热点更糟。
源码证据
- PostgreSQL 18.6 · src/backend/storage/lmgr/lwlock.c:177 —
SubtransSLRU - PostgreSQL 18.6 · src/backend/storage/lmgr/lwlock.c:739 —
pgstat_report_wait_start - PostgreSQL 18.6 · src/backend/utils/activity/wait_event_names.txt:402 —
SubtransSLRU
关联控制项与信号
- GUC: 无直接关联项。
- 指标: [metric:waiting_sessions] · [metric:wait_event_share]
5.73 - LWLock: SyncRep
SyncRep
版本PG 13-18
证据3 个源码位置
官方描述译文
等待读取或更新同步复制状态信息。
| PG 13 | PG 14 | PG 15 | PG 16 | PG 17 | PG 18 |
|---|---|---|---|---|---|
| ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
触发机制
SyncRepLock 保护同步复制队列与共享 sender 状态。提交会话入队或检查等待位置,WAL sender 则更新已被同步备库确认的 LSN。
正常还是麻烦?
- 正常: 同步提交排队、WAL sender 发布确认位置时会有小规模突发。
- 需要调查: 持续的 SyncRep LWLock 竞争不同于等待备库确认:它表示队列/状态协调本身过热,通常发生在极高提交并发或 sender 抖动时。
诊断 SQL
处置建议
- 区分 LWLock/SyncRep、IPC/SyncRep 与复制延迟等待。
- 检查同步备库健康度、sender 抖动与提交速率。
- 稳定复制并平滑提交突发;只有获得明确事故授权时才改变持久性策略。
源码证据
- PostgreSQL 18.6 · src/backend/replication/syncrep.c:192 —
SyncRep - PostgreSQL 18.6 · src/backend/storage/lmgr/lwlock.c:739 —
pgstat_report_wait_start - PostgreSQL 18.6 · src/backend/utils/activity/wait_event_names.txt:337 —
SyncRep
关联控制项与信号
- GUC: [guc:synchronous_standby_names] · [guc:synchronous_commit] · [guc:wal_sender_timeout]
- 指标: [metric:waiting_sessions] · [metric:wait_event_share] · [metric:replication_flush_lag] · [metric:commit_latency]
典型事故模式
备库反复抖动,大量同步提交者频繁进出等待队列,使队列协调本身表现为 LWLock/SyncRep。
5.74 - LWLock: SyncScan
SyncScan
版本PG 13-18
证据3 个源码位置
官方描述译文
等待选择同步表扫描的起始位置。
| PG 13 | PG 14 | PG 15 | PG 16 | PG 17 | PG 18 |
|---|---|---|---|---|---|
| ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
触发机制
pgstat_report_wait_start 位于 src/backend/storage/lmgr/lwlock.c:739,是经 grep 核验的报告路径。公共身份/资源映射位于 src/backend/access/common/syncscan.c:258。探针覆盖的操作是:等待选择同步表扫描的起始位置。LWLockAcquire 无法立即取得显示为 SyncScan 的轻量级锁 tranche;后端在内部共享内存资源上休眠时,通用 LWLock 报告器发布该 tranche 名称。
正常还是麻烦?
- 正常: 短暂内部临界区周围的零星样本属于正常。
- 需要调查: 若同一 tranche 在连续三次一秒采样中影响至少 10% 的活动前台会话,应当调查;达到 25% 或持续超过五秒按紧急处理。
诊断 SQL
处置建议
- 重复采样并锁定一个热点 tranche。
- 把它与受保护资源及当前负载阶段关联。
- 降低具体竞争源;增加并发可能让共享内存热点更糟。
源码证据
- PostgreSQL 18.6 · src/backend/access/common/syncscan.c:258 —
SyncScan - PostgreSQL 18.6 · src/backend/storage/lmgr/lwlock.c:739 —
pgstat_report_wait_start - PostgreSQL 18.6 · src/backend/utils/activity/wait_event_names.txt:331 —
SyncScan
关联控制项与信号
- GUC: 无直接关联项。
- 指标: [metric:waiting_sessions] · [metric:wait_event_share]
5.75 - LWLock: TablespaceCreate
TablespaceCreate
版本PG 13-18
证据3 个源码位置
官方描述译文
等待创建或删除表空间。
| PG 13 | PG 14 | PG 15 | PG 16 | PG 17 | PG 18 |
|---|---|---|---|---|---|
| ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
触发机制
pgstat_report_wait_start 位于 src/backend/storage/lmgr/lwlock.c:739,是经 grep 核验的报告路径。公共身份/资源映射位于 src/backend/commands/tablespace.c:138。探针覆盖的操作是:等待创建或删除表空间。LWLockAcquire 无法立即取得显示为 TablespaceCreate 的轻量级锁 tranche;后端在内部共享内存资源上休眠时,通用 LWLock 报告器发布该 tranche 名称。
正常还是麻烦?
- 正常: 短暂内部临界区周围的零星样本属于正常。
- 需要调查: 若同一 tranche 在连续三次一秒采样中影响至少 10% 的活动前台会话,应当调查;达到 25% 或持续超过五秒按紧急处理。
诊断 SQL
处置建议
- 重复采样并锁定一个热点 tranche。
- 把它与受保护资源及当前负载阶段关联。
- 降低具体竞争源;增加并发可能让共享内存热点更糟。
源码证据
- PostgreSQL 18.6 · src/backend/commands/tablespace.c:138 —
TablespaceCreate - PostgreSQL 18.6 · src/backend/storage/lmgr/lwlock.c:739 —
pgstat_report_wait_start - PostgreSQL 18.6 · src/backend/utils/activity/wait_event_names.txt:326 —
TablespaceCreate
关联控制项与信号
- GUC: 无直接关联项。
- 指标: [metric:waiting_sessions] · [metric:wait_event_share]
5.76 - LWLock: TwoPhaseState
TwoPhaseState
版本PG 13-18
证据3 个源码位置
官方描述译文
等待读取或更新预备事务的状态。
| PG 13 | PG 14 | PG 15 | PG 16 | PG 17 | PG 18 |
|---|---|---|---|---|---|
| ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
触发机制
pgstat_report_wait_start 位于 src/backend/storage/lmgr/lwlock.c:739,是经 grep 核验的报告路径。公共身份/资源映射位于 src/backend/access/transam/twophase.c:329。探针覆盖的操作是:等待读取或更新预备事务的状态。LWLockAcquire 无法立即取得显示为 TwoPhaseState 的轻量级锁 tranche;后端在内部共享内存资源上休眠时,通用 LWLock 报告器发布该 tranche 名称。
正常还是麻烦?
- 正常: 短暂内部临界区周围的零星样本属于正常。
- 需要调查: 若同一 tranche 在连续三次一秒采样中影响至少 10% 的活动前台会话,应当调查;达到 25% 或持续超过五秒按紧急处理。
诊断 SQL
处置建议
- 重复采样并锁定一个热点 tranche。
- 把它与受保护资源及当前负载阶段关联。
- 降低具体竞争源;增加并发可能让共享内存热点更糟。
源码证据
- PostgreSQL 18.6 · src/backend/access/transam/twophase.c:329 —
TwoPhaseState - PostgreSQL 18.6 · src/backend/storage/lmgr/lwlock.c:739 —
pgstat_report_wait_start - PostgreSQL 18.6 · src/backend/utils/activity/wait_event_names.txt:325 —
TwoPhaseState
关联控制项与信号
- GUC: 无直接关联项。
- 指标: [metric:waiting_sessions] · [metric:wait_event_share]
5.77 - LWLock: WALBufMapping
WALBufMapping
版本PG 13-18
证据3 个源码位置
官方描述译文
等待替换 WAL buffer 中的页面。
| PG 13 | PG 14 | PG 15 | PG 16 | PG 17 | PG 18 |
|---|---|---|---|---|---|
| ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
触发机制
WALBufMappingLock 协调 WAL 页号与有限 wal_buffers 槽位之间的映射。后端推进到新 WAL 页或替换缓冲页时需要取得此锁。
正常还是麻烦?
- 正常: WAL 生成推进并跨越缓冲页时会短暂出现。
- 需要调查: 持续竞争说明 WAL 生成换页速度超过写路径推进速度,常见于写突发或检查点期间。
诊断 SQL
处置建议
- 关联 WAL 字节量、WAL 写入与检查点时间。
- 检查写突发期间 wal_buffers 是否反复耗尽。
- 先平滑写突发并解决 WAL 设备延迟,再调整缓冲区大小。
源码证据
- PostgreSQL 18.6 · src/backend/access/transam/xlog.c:1999 —
WALBufMapping - PostgreSQL 18.6 · src/backend/storage/lmgr/lwlock.c:739 —
pgstat_report_wait_start - PostgreSQL 18.6 · src/backend/utils/activity/wait_event_names.txt:319 —
WALBufMapping
关联控制项与信号
- GUC: [guc:wal_buffers] · [guc:checkpoint_timeout] · [guc:max_wal_size]
- 指标: [metric:waiting_sessions] · [metric:wait_event_share] · [metric:wal_bytes] · [metric:wal_write_time]
典型事故模式
批量导入把 WAL 生成推到极限,同时 WAL 设备发生停顿,导致频繁的 WAL 缓冲页重映射。
5.78 - LWLock: WALInsert
WALInsert
版本PG 13-18
证据3 个源码位置
官方描述译文
等待将 WAL 数据插入内存 buffer。
| PG 13 | PG 14 | PG 15 | PG 16 | PG 17 | PG 18 |
|---|---|---|---|---|---|
| ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
触发机制
后端在共享 WAL 缓冲区中预留空间并复制 WAL 记录时,必须持有一个 WAL insertion lock。并发 WAL 生产者很多、插入临界区变长时,会在此排队。
正常还是麻烦?
- 正常: 并发写入与提交突发期间的瞬时等待很正常。
- 需要调查: 前台会话反复堆积说明 WAL 插入已成为串行点,常伴随极高写并发、全页镜像或缓冲区换页过慢。
诊断 SQL
处置建议
- 按 WAL 生成量与调用频率排序语句。
- 检查检查点/全页镜像时机与并发写会话数量。
- 批量合并微小写入、减少无效索引抖动,并处理 WAL 写延迟。
源码证据
- PostgreSQL 18.6 · src/backend/access/transam/xlog.c:1399 —
WALInsert - PostgreSQL 18.6 · src/backend/storage/lmgr/lwlock.c:739 —
pgstat_report_wait_start - PostgreSQL 18.6 · src/backend/utils/activity/wait_event_names.txt:372 —
WALInsert
关联控制项与信号
- GUC: [guc:wal_buffers] · [guc:full_page_writes] · [guc:checkpoint_timeout]
- 指标: [metric:waiting_sessions] · [metric:wait_event_share] · [metric:wal_bytes] · [metric:wal_fpi] · [metric:statement_wal_bytes]
典型事故模式
扇出任务在检查点后立即发起大量单行提交,全页镜像与写并发共同让 WAL 插入成为瓶颈。
5.79 - LWLock: WALSummarizer
WALSummarizer
版本PG 17-18
证据3 个源码位置
官方描述译文
等待读取或更新 WAL 汇总状态。
| PG 13 | PG 14 | PG 15 | PG 16 | PG 17 | PG 18 |
|---|---|---|---|---|---|
| — | — | — | — | ✓ | ✓ |
触发机制
pgstat_report_wait_start 位于 src/backend/storage/lmgr/lwlock.c:739,是经 grep 核验的报告路径。公共身份/资源映射位于 src/backend/postmaster/walsummarizer.c:273。探针覆盖的操作是:等待读取或更新 WAL 汇总状态。LWLockAcquire 无法立即取得显示为 WALSummarizer 的轻量级锁 tranche;后端在内部共享内存资源上休眠时,通用 LWLock 报告器发布该 tranche 名称。
正常还是麻烦?
- 正常: 短暂内部临界区周围的零星样本属于正常。
- 需要调查: 若同一 tranche 在连续三次一秒采样中影响至少 10% 的活动前台会话,应当调查;达到 25% 或持续超过五秒按紧急处理。
诊断 SQL
处置建议
- 重复采样并锁定一个热点 tranche。
- 把它与受保护资源及当前负载阶段关联。
- 降低具体竞争源;增加并发可能让共享内存热点更糟。
源码证据
- PostgreSQL 18.6 · src/backend/postmaster/walsummarizer.c:273 —
WALSummarizer - PostgreSQL 18.6 · src/backend/storage/lmgr/lwlock.c:739 —
pgstat_report_wait_start - PostgreSQL 18.6 · src/backend/utils/activity/wait_event_names.txt:351 —
WALSummarizer
关联控制项与信号
5.80 - LWLock: WALWrite
WALWrite
版本PG 13-18
证据3 个源码位置
官方描述译文
等待将 WAL buffer 写入磁盘。
| PG 13 | PG 14 | PG 15 | PG 16 | PG 17 | PG 18 |
|---|---|---|---|---|---|
| ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
触发机制
WALWriteLock 串行化共享 WAL 缓冲区写入,以及 written/flushed 位置的推进。等待者正在当前执行或协调这项工作的后端之后排队。
正常还是麻烦?
- 正常: 多个提交者协助写 WAL 时会短暂出现。
- 需要调查: WALWrite 持续出现且提交延迟上升,通常表示 WAL 写路径变慢,或吞吐跟不上 WAL 生成速度。
诊断 SQL
处置建议
- 把 WAL write/sync 时间与提交延迟对照。
- 检查 WAL 文件系统/设备、虚拟化限速与检查点重叠。
- 降低突发性;只有存储证据确认后才调整 wal_writer 参数。
源码证据
- PostgreSQL 18.6 · src/backend/access/transam/xlog.c:2047 —
WALWrite - PostgreSQL 18.6 · src/backend/storage/lmgr/lwlock.c:739 —
pgstat_report_wait_start - PostgreSQL 18.6 · src/backend/utils/activity/wait_event_names.txt:320 —
WALWrite
关联控制项与信号
- GUC: [guc:wal_writer_delay] · [guc:wal_writer_flush_after] · [guc:synchronous_commit]
- 指标: [metric:waiting_sessions] · [metric:wait_event_share] · [metric:wal_write_time] · [metric:wal_sync_time] · [metric:commit_latency]
典型事故模式
云盘耗尽突发积分,WAL 写入变长,提交会话在 WALWrite 上排队,同步提交延迟同步恶化。
5.81 - LWLock: WaitEventCustom
WaitEventCustom
版本PG 17-18
证据3 个源码位置
官方描述译文
等待读取或更新自定义等待事件信息。
| PG 13 | PG 14 | PG 15 | PG 16 | PG 17 | PG 18 |
|---|---|---|---|---|---|
| — | — | — | — | ✓ | ✓ |
触发机制
pgstat_report_wait_start 位于 src/backend/storage/lmgr/lwlock.c:739,是经 grep 核验的报告路径。公共身份/资源映射位于 src/backend/utils/activity/wait_event.c:193。探针覆盖的操作是:等待读取或更新自定义等待事件信息。LWLockAcquire 无法立即取得显示为 WaitEventCustom 的轻量级锁 tranche;后端在内部共享内存资源上休眠时,通用 LWLock 报告器发布该 tranche 名称。
正常还是麻烦?
- 正常: 短暂内部临界区周围的零星样本属于正常。
- 需要调查: 若同一 tranche 在连续三次一秒采样中影响至少 10% 的活动前台会话,应当调查;达到 25% 或持续超过五秒按紧急处理。
诊断 SQL
处置建议
- 重复采样并锁定一个热点 tranche。
- 把它与受保护资源及当前负载阶段关联。
- 降低具体竞争源;增加并发可能让共享内存热点更糟。
源码证据
- PostgreSQL 18.6 · src/backend/storage/lmgr/lwlock.c:739 —
pgstat_report_wait_start - PostgreSQL 18.6 · src/backend/utils/activity/wait_event.c:193 —
WaitEventCustom - PostgreSQL 18.6 · src/backend/utils/activity/wait_event_names.txt:350 —
WaitEventCustom
关联控制项与信号
- GUC: 无直接关联项。
- 指标: [metric:waiting_sessions] · [metric:wait_event_share]
5.82 - LWLock: WrapLimitsVacuum
WrapLimitsVacuum
版本PG 13-18
证据3 个源码位置
官方描述译文
等待更新事务 ID 和 multixact 的消耗上限。
| PG 13 | PG 14 | PG 15 | PG 16 | PG 17 | PG 18 |
|---|---|---|---|---|---|
| ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
触发机制
pgstat_report_wait_start 位于 src/backend/storage/lmgr/lwlock.c:739,是经 grep 核验的报告路径。公共身份/资源映射位于 src/backend/commands/vacuum.c:1858。探针覆盖的操作是:等待更新事务 ID 和 multixact 的消耗上限。LWLockAcquire 无法立即取得显示为 WrapLimitsVacuum 的轻量级锁 tranche;后端在内部共享内存资源上休眠时,通用 LWLock 报告器发布该 tranche 名称。
正常还是麻烦?
- 正常: 短暂内部临界区周围的零星样本属于正常。
- 需要调查: 若同一 tranche 在连续三次一秒采样中影响至少 10% 的活动前台会话,应当调查;达到 25% 或持续超过五秒按紧急处理。
诊断 SQL
处置建议
- 重复采样并锁定一个热点 tranche。
- 把它与受保护资源及当前负载阶段关联。
- 降低具体竞争源;增加并发可能让共享内存热点更糟。
源码证据
- PostgreSQL 18.6 · src/backend/commands/vacuum.c:1858 —
WrapLimitsVacuum - PostgreSQL 18.6 · src/backend/storage/lmgr/lwlock.c:739 —
pgstat_report_wait_start - PostgreSQL 18.6 · src/backend/utils/activity/wait_event_names.txt:348 —
WrapLimitsVacuum
关联控制项与信号
5.83 - LWLock: XactBuffer
XactBuffer
版本PG 13-18
证据3 个源码位置
官方描述译文
等待事务状态 SLRU buffer 上的 I/O。
| PG 13 | PG 14 | PG 15 | PG 16 | PG 17 | PG 18 |
|---|---|---|---|---|---|
| ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
触发机制
pgstat_report_wait_start 位于 src/backend/storage/lmgr/lwlock.c:739,是经 grep 核验的报告路径。公共身份/资源映射位于 src/backend/storage/lmgr/lwlock.c:140。探针覆盖的操作是:等待事务状态 SLRU buffer 上的 I/O。LWLockAcquire 无法立即取得显示为 XactBuffer 的轻量级锁 tranche;后端在内部共享内存资源上休眠时,通用 LWLock 报告器发布该 tranche 名称。
正常还是麻烦?
- 正常: 短暂内部临界区周围的零星样本属于正常。
- 需要调查: 若同一 tranche 在连续三次一秒采样中影响至少 10% 的活动前台会话,应当调查;达到 25% 或持续超过五秒按紧急处理。
诊断 SQL
处置建议
- 重复采样并锁定一个热点 tranche。
- 把它与受保护资源及当前负载阶段关联。
- 降低具体竞争源;增加并发可能让共享内存热点更糟。
源码证据
- PostgreSQL 18.6 · src/backend/storage/lmgr/lwlock.c:140 —
XactBuffer - PostgreSQL 18.6 · src/backend/storage/lmgr/lwlock.c:739 —
pgstat_report_wait_start - PostgreSQL 18.6 · src/backend/utils/activity/wait_event_names.txt:365 —
XactBuffer
关联控制项与信号
5.84 - LWLock: XactSLRU
XactSLRU
版本PG 13-18
证据3 个源码位置
官方描述译文
等待访问事务状态 SLRU 缓存。
| PG 13 | PG 14 | PG 15 | PG 16 | PG 17 | PG 18 |
|---|---|---|---|---|---|
| ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
触发机制
事务状态 SLRU 锁保护 pg_xact 缓存元数据与页面,PostgreSQL 读取或更新事务提交状态时会经过这里。对未缓存或很老 XID 的可见性检查会把这条路径带到前台。
正常还是麻烦?
- 正常: 事务结束与偶发 pg_xact 缓存未命中会带来短暂等待。
- 需要调查: 持续等待可能表示事务状态缓存抖动、访问很老的元组,或 pg_xact 路径存在存储延迟。
诊断 SQL
处置建议
- 检查老事务以及 vacuum/freeze 健康度。
- 关联 XactBuffer 与 pg_xact I/O 等待。
- 先消除可见性边界阻塞者并恢复清理进度,再考虑容量调整。
源码证据
- PostgreSQL 18.6 · src/backend/storage/lmgr/lwlock.c:178 —
XactSLRU - PostgreSQL 18.6 · src/backend/storage/lmgr/lwlock.c:739 —
pgstat_report_wait_start - PostgreSQL 18.6 · src/backend/utils/activity/wait_event_names.txt:403 —
XactSLRU
关联控制项与信号
- GUC: [guc:autovacuum_freeze_max_age] · [guc:vacuum_freeze_table_age]
- 指标: [metric:waiting_sessions] · [metric:wait_event_share] · [metric:oldest_transaction_age] · [metric:xact_slru_io]
典型事故模式
长生命周期快照阻止清理,同时查询反复访问冷的旧元组版本,引发 pg_xact 缓存抖动与 XactSLRU 竞争。
5.85 - LWLock: XactTruncation
XactTruncation
版本PG 13-18
证据3 个源码位置
官方描述译文
等待执行 pg_xact_status,或更新当前进程可用的最旧事务 ID。
| PG 13 | PG 14 | PG 15 | PG 16 | PG 17 | PG 18 |
|---|---|---|---|---|---|
| ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
触发机制
pgstat_report_wait_start 位于 src/backend/storage/lmgr/lwlock.c:739,是经 grep 核验的报告路径。公共身份/资源映射位于 src/backend/access/transam/varsup.c:357。探针覆盖的操作是:等待执行 pg_xact_status,或更新当前进程可用的最旧事务 ID。LWLockAcquire 无法立即取得显示为 XactTruncation 的轻量级锁 tranche;后端在内部共享内存资源上休眠时,通用 LWLock 报告器发布该 tranche 名称。
正常还是麻烦?
- 正常: 短暂内部临界区周围的零星样本属于正常。
- 需要调查: 若同一 tranche 在连续三次一秒采样中影响至少 10% 的活动前台会话,应当调查;达到 25% 或持续超过五秒按紧急处理。
诊断 SQL
处置建议
- 重复采样并锁定一个热点 tranche。
- 把它与受保护资源及当前负载阶段关联。
- 降低具体竞争源;增加并发可能让共享内存热点更糟。
源码证据
- PostgreSQL 18.6 · src/backend/access/transam/varsup.c:357 —
XactTruncation - PostgreSQL 18.6 · src/backend/storage/lmgr/lwlock.c:739 —
pgstat_report_wait_start - PostgreSQL 18.6 · src/backend/utils/activity/wait_event_names.txt:347 —
XactTruncation
关联控制项与信号
5.86 - LWLock: XidGen
XidGen
版本PG 13-18
证据3 个源码位置
官方描述译文
等待分配新的事务 ID。
| PG 13 | PG 14 | PG 15 | PG 16 | PG 17 | PG 18 |
|---|---|---|---|---|---|
| ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
触发机制
pgstat_report_wait_start 位于 src/backend/storage/lmgr/lwlock.c:739,是经 grep 核验的报告路径。公共身份/资源映射位于 src/backend/access/transam/varsup.c:105。探针覆盖的操作是:等待分配新的事务 ID。LWLockAcquire 无法立即取得显示为 XidGen 的轻量级锁 tranche;后端在内部共享内存资源上休眠时,通用 LWLock 报告器发布该 tranche 名称。
正常还是麻烦?
- 正常: 短暂内部临界区周围的零星样本属于正常。
- 需要调查: 若同一 tranche 在连续三次一秒采样中影响至少 10% 的活动前台会话,应当调查;达到 25% 或持续超过五秒按紧急处理。
诊断 SQL
处置建议
- 重复采样并锁定一个热点 tranche。
- 把它与受保护资源及当前负载阶段关联。
- 降低具体竞争源;增加并发可能让共享内存热点更糟。
源码证据
- PostgreSQL 18.6 · src/backend/access/transam/varsup.c:105 —
XidGen - PostgreSQL 18.6 · src/backend/storage/lmgr/lwlock.c:739 —
pgstat_report_wait_start - PostgreSQL 18.6 · src/backend/utils/activity/wait_event_names.txt:315 —
XidGen
关联控制项与信号
- GUC: 无直接关联项。
- 指标: [metric:waiting_sessions] · [metric:wait_event_share]
6 - I/O 等待
IO 表示 PostgreSQL 已为某个文件操作设置探针,而后端必须等内核或另一个 I/O worker 推进后才能继续。它指出的是哪条 PostgreSQL 文件路径,但单凭事件本身不能证明存储很慢。
把事件、操作和负载阶段一起读
名称通常同时编码对象与操作:DataFileRead、WalSync、SlruWrite、ReorderBufferRead。先问当前负载是否本来就该执行这项操作,再把持续时间与并发度关联到 pg_stat_io(PG16+)和操作系统延迟。
- 正常: 扫描读取数据文件,检查点同步脏文件,备份读写,恢复读取 WAL。
- 关注: 同一个前台 I/O 事件在连续样本中存在,而且设备或查询延迟上升。
- 紧急: 大量后端排队等待 sync/write、出现错误,或受影响路径达到饱和/限速。
值得先认出的事件
| 事件 | 第一解释 |
|---|---|
| DataFileRead | 缓存未命中或扫描正在读取关系数据 |
| DataFileWrite | 后端/检查点路径正在写关系数据 |
| DataFileSync | 关系改动正在持久化 |
| WalWrite | 正在写入 WAL 字节 |
| WalSync | WAL 持久性边界等待 fsync/fdatasync |
| SlruRead | 读取事务相关 SLRU 页面 |
| BuffileRead | 读取临时/溢写文件 |
| AioIoCompletion | PG18 AIO 工作尚未完成 |
PG16+ I/O 上下文
常见误读
- 有意执行顺序扫描时,大量
DataFileRead可能只是健康吞吐。 WalWrite与 LWLockWALWrite不是一回事:前者是文件操作,后者是内部协调。- 设备平均延迟可能掩盖单块 WAL 卷饱和或长尾延迟尖刺。
- 增大缓存不能解决所有读取等待;糟糕计划和一次性冷扫描仍可能挤出有用页面。
6.1 - IO: AioIoCompletion
AioIoCompletion
版本PG 18
证据2 个源码位置
官方描述译文
等待另一个进程完成 I/O。
| PG 13 | PG 14 | PG 15 | PG 16 | PG 17 | PG 18 |
|---|---|---|---|---|---|
| — | — | — | — | — | ✓ |
触发机制
WAIT_EVENT_AIO_IO_COMPLETION 位于 src/backend/storage/aio/aio.c:643,是经 grep 核验的报告路径。公共身份/资源映射位于 src/backend/utils/activity/wait_event_names.txt:196。探针覆盖的操作是:等待另一个进程完成 I/O。PostgreSQL 在 AioIoCompletion 所表示的文件或异步 I/O 操作周围报告此事件;内核、存储栈或 I/O worker 完成该步骤后,后端继续执行。
正常还是麻烦?
- 正常: 当负载本来就应以当前速率执行对应的读取、写入、同步、分配或完成操作时,这项等待正常。
- 需要调查: 若它持续存在并伴随前台延迟、大量并发等待者、存储长尾延迟、限速或错误,应当调查。
诊断 SQL
处置建议
- 确认当前负载阶段本来就应访问这类文件。
- 在可用版本上关联 pg_stat_io 与具体设备延迟。
- 先修复访问路径、突发形状或受影响存储层,再调整无关的内存参数。
源码证据
- PostgreSQL 18.6 · src/backend/storage/aio/aio.c:643 —
WAIT_EVENT_AIO_IO_COMPLETION - PostgreSQL 18.6 · src/backend/utils/activity/wait_event_names.txt:196 —
AIO_IO_COMPLETION
关联控制项与信号
- GUC: 无直接关联项。
- 指标: [metric:waiting_sessions] · [metric:wait_event_share] · [metric:io_read_time] · [metric:io_write_time]
6.2 - IO: AioIoUringExecution
AioIoUringExecution
版本PG 18
证据2 个源码位置
官方描述译文
等待通过 io_uring 执行 I/O。
| PG 13 | PG 14 | PG 15 | PG 16 | PG 17 | PG 18 |
|---|---|---|---|---|---|
| — | — | — | — | — | ✓ |
触发机制
WAIT_EVENT_AIO_IO_URING_EXECUTION 位于 src/backend/storage/aio/method_io_uring.c:624,是经 grep 核验的报告路径。公共身份/资源映射位于 src/backend/utils/activity/wait_event_names.txt:198。探针覆盖的操作是:等待通过 io_uring 执行 I/O。PostgreSQL 在 AioIoUringExecution 所表示的文件或异步 I/O 操作周围报告此事件;内核、存储栈或 I/O worker 完成该步骤后,后端继续执行。
正常还是麻烦?
- 正常: 当负载本来就应以当前速率执行对应的读取、写入、同步、分配或完成操作时,这项等待正常。
- 需要调查: 若它持续存在并伴随前台延迟、大量并发等待者、存储长尾延迟、限速或错误,应当调查。
诊断 SQL
处置建议
- 确认当前负载阶段本来就应访问这类文件。
- 在可用版本上关联 pg_stat_io 与具体设备延迟。
- 先修复访问路径、突发形状或受影响存储层,再调整无关的内存参数。
源码证据
- PostgreSQL 18.6 · src/backend/storage/aio/method_io_uring.c:624 —
WAIT_EVENT_AIO_IO_URING_EXECUTION - PostgreSQL 18.6 · src/backend/utils/activity/wait_event_names.txt:198 —
AIO_IO_URING_EXECUTION
关联控制项与信号
- GUC: 无直接关联项。
- 指标: [metric:waiting_sessions] · [metric:wait_event_share] · [metric:io_read_time] · [metric:io_write_time]
6.3 - IO: AioIoUringSubmit
AioIoUringSubmit
版本PG 18
证据2 个源码位置
官方描述译文
等待通过 io_uring 提交 I/O。
| PG 13 | PG 14 | PG 15 | PG 16 | PG 17 | PG 18 |
|---|---|---|---|---|---|
| — | — | — | — | — | ✓ |
触发机制
WAIT_EVENT_AIO_IO_URING_SUBMIT 位于 src/backend/storage/aio/method_io_uring.c:451,是经 grep 核验的报告路径。公共身份/资源映射位于 src/backend/utils/activity/wait_event_names.txt:197。探针覆盖的操作是:等待通过 io_uring 提交 I/O。PostgreSQL 在 AioIoUringSubmit 所表示的文件或异步 I/O 操作周围报告此事件;内核、存储栈或 I/O worker 完成该步骤后,后端继续执行。
正常还是麻烦?
- 正常: 当负载本来就应以当前速率执行对应的读取、写入、同步、分配或完成操作时,这项等待正常。
- 需要调查: 若它持续存在并伴随前台延迟、大量并发等待者、存储长尾延迟、限速或错误,应当调查。
诊断 SQL
处置建议
- 确认当前负载阶段本来就应访问这类文件。
- 在可用版本上关联 pg_stat_io 与具体设备延迟。
- 先修复访问路径、突发形状或受影响存储层,再调整无关的内存参数。
源码证据
- PostgreSQL 18.6 · src/backend/storage/aio/method_io_uring.c:451 —
WAIT_EVENT_AIO_IO_URING_SUBMIT - PostgreSQL 18.6 · src/backend/utils/activity/wait_event_names.txt:197 —
AIO_IO_URING_SUBMIT
关联控制项与信号
- GUC: 无直接关联项。
- 指标: [metric:waiting_sessions] · [metric:wait_event_share] · [metric:io_read_time] · [metric:io_write_time]
6.4 - IO: BasebackupRead
BasebackupRead
版本PG 17-18
证据4 个源码位置
官方描述译文
等待基础备份从文件中读取数据。
| PG 13 | PG 14 | PG 15 | PG 16 | PG 17 | PG 18 |
|---|---|---|---|---|---|
| — | — | — | — | ✓ | ✓ |
历史名称:IO/BaseBackupRead (PG 14-16)
触发机制
WAIT_EVENT_BASEBACKUP_READ 位于 src/backend/backup/basebackup.c:1837,是经 grep 核验的报告路径。公共身份/资源映射位于 src/backend/utils/activity/wait_event.c:541。探针覆盖的操作是:等待基础备份从文件中读取数据。PostgreSQL 在 BasebackupRead 所表示的文件或异步 I/O 操作周围报告此事件;内核、存储栈或 I/O worker 完成该步骤后,后端继续执行。
正常还是麻烦?
- 正常: 当负载本来就应以当前速率执行对应的读取、写入、同步、分配或完成操作时,这项等待正常。
- 需要调查: 若它持续存在并伴随前台延迟、大量并发等待者、存储长尾延迟、限速或错误,应当调查。
诊断 SQL
处置建议
- 确认当前负载阶段本来就应访问这类文件。
- 在可用版本上关联 pg_stat_io 与具体设备延迟。
- 先修复访问路径、突发形状或受影响存储层,再调整无关的内存参数。
源码证据
- PostgreSQL 16.15 · src/backend/backup/basebackup.c:1837 —
WAIT_EVENT_BASEBACKUP_READ - PostgreSQL 16.15 · src/backend/utils/activity/wait_event.c:541 —
BaseBackupRead - PostgreSQL 18.6 · src/backend/backup/basebackup.c:2119 —
WAIT_EVENT_BASEBACKUP_READ - PostgreSQL 18.6 · src/backend/utils/activity/wait_event_names.txt:199 —
BASEBACKUP_READ
关联控制项与信号
- GUC: 无直接关联项。
- 指标: [metric:waiting_sessions] · [metric:wait_event_share] · [metric:io_read_time] · [metric:io_write_time]
6.5 - IO: BasebackupSync
BasebackupSync
版本PG 17-18
证据4 个源码位置
官方描述译文
等待基础备份写入的数据到达持久化存储。
| PG 13 | PG 14 | PG 15 | PG 16 | PG 17 | PG 18 |
|---|---|---|---|---|---|
| — | — | — | — | ✓ | ✓ |
历史名称:IO/BaseBackupSync (PG 15-16)
触发机制
WAIT_EVENT_BASEBACKUP_SYNC 位于 src/backend/backup/basebackup_server.c:206,是经 grep 核验的报告路径。公共身份/资源映射位于 src/backend/utils/activity/wait_event.c:544。探针覆盖的操作是:等待基础备份写入的数据到达持久化存储。PostgreSQL 在 BasebackupSync 所表示的文件或异步 I/O 操作周围报告此事件;内核、存储栈或 I/O worker 完成该步骤后,后端继续执行。
正常还是麻烦?
- 正常: 当负载本来就应以当前速率执行对应的读取、写入、同步、分配或完成操作时,这项等待正常。
- 需要调查: 若它持续存在并伴随前台延迟、大量并发等待者、存储长尾延迟、限速或错误,应当调查。
诊断 SQL
处置建议
- 确认当前负载阶段本来就应访问这类文件。
- 在可用版本上关联 pg_stat_io 与具体设备延迟。
- 先修复访问路径、突发形状或受影响存储层,再调整无关的内存参数。
源码证据
- PostgreSQL 16.15 · src/backend/backup/basebackup_server.c:206 —
WAIT_EVENT_BASEBACKUP_SYNC - PostgreSQL 16.15 · src/backend/utils/activity/wait_event.c:544 —
BaseBackupSync - PostgreSQL 18.6 · src/backend/backup/basebackup_server.c:204 —
WAIT_EVENT_BASEBACKUP_SYNC - PostgreSQL 18.6 · src/backend/utils/activity/wait_event_names.txt:200 —
BASEBACKUP_SYNC
关联控制项与信号
- GUC: 无直接关联项。
- 指标: [metric:waiting_sessions] · [metric:wait_event_share] · [metric:io_read_time] · [metric:io_write_time]
6.6 - IO: BasebackupWrite
BasebackupWrite
版本PG 17-18
证据4 个源码位置
官方描述译文
等待基础备份向文件写入数据。
| PG 13 | PG 14 | PG 15 | PG 16 | PG 17 | PG 18 |
|---|---|---|---|---|---|
| — | — | — | — | ✓ | ✓ |
历史名称:IO/BaseBackupWrite (PG 15-16)
触发机制
WAIT_EVENT_BASEBACKUP_WRITE 位于 src/backend/backup/basebackup_server.c:168,是经 grep 核验的报告路径。公共身份/资源映射位于 src/backend/utils/activity/wait_event.c:547。探针覆盖的操作是:等待基础备份向文件写入数据。PostgreSQL 在 BasebackupWrite 所表示的文件或异步 I/O 操作周围报告此事件;内核、存储栈或 I/O worker 完成该步骤后,后端继续执行。
正常还是麻烦?
- 正常: 当负载本来就应以当前速率执行对应的读取、写入、同步、分配或完成操作时,这项等待正常。
- 需要调查: 若它持续存在并伴随前台延迟、大量并发等待者、存储长尾延迟、限速或错误,应当调查。
诊断 SQL
处置建议
- 确认当前负载阶段本来就应访问这类文件。
- 在可用版本上关联 pg_stat_io 与具体设备延迟。
- 先修复访问路径、突发形状或受影响存储层,再调整无关的内存参数。
源码证据
- PostgreSQL 16.15 · src/backend/backup/basebackup_server.c:168 —
WAIT_EVENT_BASEBACKUP_WRITE - PostgreSQL 16.15 · src/backend/utils/activity/wait_event.c:547 —
BaseBackupWrite - PostgreSQL 18.6 · src/backend/backup/basebackup_server.c:166 —
WAIT_EVENT_BASEBACKUP_WRITE - PostgreSQL 18.6 · src/backend/utils/activity/wait_event_names.txt:201 —
BASEBACKUP_WRITE
关联控制项与信号
- GUC: 无直接关联项。
- 指标: [metric:waiting_sessions] · [metric:wait_event_share] · [metric:io_read_time] · [metric:io_write_time]
6.7 - IO: BuffileRead
BuffileRead
版本PG 17-18
证据4 个源码位置
官方描述译文
等待从缓冲文件中读取数据。
| PG 13 | PG 14 | PG 15 | PG 16 | PG 17 | PG 18 |
|---|---|---|---|---|---|
| — | — | — | — | ✓ | ✓ |
历史名称:IO/BufFileRead (PG 13-16)
触发机制
WAIT_EVENT_BUFFILE_READ 位于 src/backend/storage/file/buffile.c:464,是经 grep 核验的报告路径。公共身份/资源映射位于 src/backend/utils/activity/wait_event.c:550。探针覆盖的操作是:等待从缓冲文件中读取数据。PostgreSQL 在 BuffileRead 所表示的文件或异步 I/O 操作周围报告此事件;内核、存储栈或 I/O worker 完成该步骤后,后端继续执行。
正常还是麻烦?
- 正常: 当负载本来就应以当前速率执行对应的读取、写入、同步、分配或完成操作时,这项等待正常。
- 需要调查: 若它持续存在并伴随前台延迟、大量并发等待者、存储长尾延迟、限速或错误,应当调查。
诊断 SQL
处置建议
- 确认当前负载阶段本来就应访问这类文件。
- 在可用版本上关联 pg_stat_io 与具体设备延迟。
- 先修复访问路径、突发形状或受影响存储层,再调整无关的内存参数。
源码证据
- PostgreSQL 16.15 · src/backend/storage/file/buffile.c:464 —
WAIT_EVENT_BUFFILE_READ - PostgreSQL 16.15 · src/backend/utils/activity/wait_event.c:550 —
BufFileRead - PostgreSQL 18.6 · src/backend/storage/file/buffile.c:464 —
WAIT_EVENT_BUFFILE_READ - PostgreSQL 18.6 · src/backend/utils/activity/wait_event_names.txt:202 —
BUFFILE_READ
关联控制项与信号
- GUC: 无直接关联项。
- 指标: [metric:waiting_sessions] · [metric:wait_event_share] · [metric:io_read_time] · [metric:io_write_time]
6.8 - IO: BuffileTruncate
BuffileTruncate
版本PG 17-18
证据4 个源码位置
官方描述译文
等待截断缓冲文件。
| PG 13 | PG 14 | PG 15 | PG 16 | PG 17 | PG 18 |
|---|---|---|---|---|---|
| — | — | — | — | ✓ | ✓ |
历史名称:IO/BufFileTruncate (PG 14-16)
触发机制
WAIT_EVENT_BUFFILE_TRUNCATE 位于 src/backend/storage/file/buffile.c:989,是经 grep 核验的报告路径。公共身份/资源映射位于 src/backend/utils/activity/wait_event.c:556。探针覆盖的操作是:等待截断缓冲文件。PostgreSQL 在 BuffileTruncate 所表示的文件或异步 I/O 操作周围报告此事件;内核、存储栈或 I/O worker 完成该步骤后,后端继续执行。
正常还是麻烦?
- 正常: 当负载本来就应以当前速率执行对应的读取、写入、同步、分配或完成操作时,这项等待正常。
- 需要调查: 若它持续存在并伴随前台延迟、大量并发等待者、存储长尾延迟、限速或错误,应当调查。
诊断 SQL
处置建议
- 确认当前负载阶段本来就应访问这类文件。
- 在可用版本上关联 pg_stat_io 与具体设备延迟。
- 先修复访问路径、突发形状或受影响存储层,再调整无关的内存参数。
源码证据
- PostgreSQL 16.15 · src/backend/storage/file/buffile.c:989 —
WAIT_EVENT_BUFFILE_TRUNCATE - PostgreSQL 16.15 · src/backend/utils/activity/wait_event.c:556 —
BufFileTruncate - PostgreSQL 18.6 · src/backend/storage/file/buffile.c:966 —
WAIT_EVENT_BUFFILE_TRUNCATE - PostgreSQL 18.6 · src/backend/utils/activity/wait_event_names.txt:204 —
BUFFILE_TRUNCATE
关联控制项与信号
- GUC: 无直接关联项。
- 指标: [metric:waiting_sessions] · [metric:wait_event_share] · [metric:io_read_time] · [metric:io_write_time]
6.9 - IO: BuffileWrite
BuffileWrite
版本PG 17-18
证据4 个源码位置
官方描述译文
等待向缓冲文件写入数据。
| PG 13 | PG 14 | PG 15 | PG 16 | PG 17 | PG 18 |
|---|---|---|---|---|---|
| — | — | — | — | ✓ | ✓ |
历史名称:IO/BufFileWrite (PG 13-16)
触发机制
WAIT_EVENT_BUFFILE_WRITE 位于 src/backend/storage/file/buffile.c:541,是经 grep 核验的报告路径。公共身份/资源映射位于 src/backend/utils/activity/wait_event.c:553。探针覆盖的操作是:等待向缓冲文件写入数据。PostgreSQL 在 BuffileWrite 所表示的文件或异步 I/O 操作周围报告此事件;内核、存储栈或 I/O worker 完成该步骤后,后端继续执行。
正常还是麻烦?
- 正常: 当负载本来就应以当前速率执行对应的读取、写入、同步、分配或完成操作时,这项等待正常。
- 需要调查: 若它持续存在并伴随前台延迟、大量并发等待者、存储长尾延迟、限速或错误,应当调查。
诊断 SQL
处置建议
- 确认当前负载阶段本来就应访问这类文件。
- 在可用版本上关联 pg_stat_io 与具体设备延迟。
- 先修复访问路径、突发形状或受影响存储层,再调整无关的内存参数。
源码证据
- PostgreSQL 16.15 · src/backend/storage/file/buffile.c:541 —
WAIT_EVENT_BUFFILE_WRITE - PostgreSQL 16.15 · src/backend/utils/activity/wait_event.c:553 —
BufFileWrite - PostgreSQL 18.6 · src/backend/storage/file/buffile.c:541 —
WAIT_EVENT_BUFFILE_WRITE - PostgreSQL 18.6 · src/backend/utils/activity/wait_event_names.txt:203 —
BUFFILE_WRITE
关联控制项与信号
- GUC: 无直接关联项。
- 指标: [metric:waiting_sessions] · [metric:wait_event_share] · [metric:io_read_time] · [metric:io_write_time]
6.10 - IO: ControlFileRead
ControlFileRead
版本PG 13-18
证据2 个源码位置
官方描述译文
等待从 pg_control 文件中读取数据。
| PG 13 | PG 14 | PG 15 | PG 16 | PG 17 | PG 18 |
|---|---|---|---|---|---|
| ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
触发机制
WAIT_EVENT_CONTROL_FILE_READ 位于 src/backend/access/transam/xlog.c:4362,是经 grep 核验的报告路径。公共身份/资源映射位于 src/backend/utils/activity/wait_event_names.txt:205。探针覆盖的操作是:等待从 pg_control 文件中读取数据。PostgreSQL 在 ControlFileRead 所表示的文件或异步 I/O 操作周围报告此事件;内核、存储栈或 I/O worker 完成该步骤后,后端继续执行。
正常还是麻烦?
- 正常: 当负载本来就应以当前速率执行对应的读取、写入、同步、分配或完成操作时,这项等待正常。
- 需要调查: 若它持续存在并伴随前台延迟、大量并发等待者、存储长尾延迟、限速或错误,应当调查。
诊断 SQL
处置建议
- 确认当前负载阶段本来就应访问这类文件。
- 在可用版本上关联 pg_stat_io 与具体设备延迟。
- 先修复访问路径、突发形状或受影响存储层,再调整无关的内存参数。
源码证据
- PostgreSQL 18.6 · src/backend/access/transam/xlog.c:4362 —
WAIT_EVENT_CONTROL_FILE_READ - PostgreSQL 18.6 · src/backend/utils/activity/wait_event_names.txt:205 —
CONTROL_FILE_READ
关联控制项与信号
- GUC: 无直接关联项。
- 指标: [metric:waiting_sessions] · [metric:wait_event_share] · [metric:io_read_time] · [metric:io_write_time]
6.11 - IO: ControlFileSync
ControlFileSync
版本PG 13-18
证据2 个源码位置
官方描述译文
等待 pg_control 文件到达持久化存储。
| PG 13 | PG 14 | PG 15 | PG 16 | PG 17 | PG 18 |
|---|---|---|---|---|---|
| ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
触发机制
WAIT_EVENT_CONTROL_FILE_SYNC 位于 src/backend/access/transam/xlog.c:4328,是经 grep 核验的报告路径。公共身份/资源映射位于 src/backend/utils/activity/wait_event_names.txt:206。探针覆盖的操作是:等待 pg_control 文件到达持久化存储。PostgreSQL 在 ControlFileSync 所表示的文件或异步 I/O 操作周围报告此事件;内核、存储栈或 I/O worker 完成该步骤后,后端继续执行。
正常还是麻烦?
- 正常: 当负载本来就应以当前速率执行对应的读取、写入、同步、分配或完成操作时,这项等待正常。
- 需要调查: 若它持续存在并伴随前台延迟、大量并发等待者、存储长尾延迟、限速或错误,应当调查。
诊断 SQL
处置建议
- 确认当前负载阶段本来就应访问这类文件。
- 在可用版本上关联 pg_stat_io 与具体设备延迟。
- 先修复访问路径、突发形状或受影响存储层,再调整无关的内存参数。
源码证据
- PostgreSQL 18.6 · src/backend/access/transam/xlog.c:4328 —
WAIT_EVENT_CONTROL_FILE_SYNC - PostgreSQL 18.6 · src/backend/utils/activity/wait_event_names.txt:206 —
CONTROL_FILE_SYNC
关联控制项与信号
- GUC: 无直接关联项。
- 指标: [metric:waiting_sessions] · [metric:wait_event_share] · [metric:io_read_time] · [metric:io_write_time]
6.12 - IO: ControlFileSyncUpdate
ControlFileSyncUpdate
版本PG 13-18
证据2 个源码位置
官方描述译文
等待 pg_control 文件的更新内容到达持久化存储。
| PG 13 | PG 14 | PG 15 | PG 16 | PG 17 | PG 18 |
|---|---|---|---|---|---|
| ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
触发机制
WAIT_EVENT_CONTROL_FILE_SYNC_UPDATE 位于 src/common/controldata_utils.c:259,是经 grep 核验的报告路径。公共身份/资源映射位于 src/backend/utils/activity/wait_event_names.txt:207。探针覆盖的操作是:等待 pg_control 文件的更新内容到达持久化存储。PostgreSQL 在 ControlFileSyncUpdate 所表示的文件或异步 I/O 操作周围报告此事件;内核、存储栈或 I/O worker 完成该步骤后,后端继续执行。
正常还是麻烦?
- 正常: 当负载本来就应以当前速率执行对应的读取、写入、同步、分配或完成操作时,这项等待正常。
- 需要调查: 若它持续存在并伴随前台延迟、大量并发等待者、存储长尾延迟、限速或错误,应当调查。
诊断 SQL
处置建议
- 确认当前负载阶段本来就应访问这类文件。
- 在可用版本上关联 pg_stat_io 与具体设备延迟。
- 先修复访问路径、突发形状或受影响存储层,再调整无关的内存参数。
源码证据
- PostgreSQL 18.6 · src/backend/utils/activity/wait_event_names.txt:207 —
CONTROL_FILE_SYNC_UPDATE - PostgreSQL 18.6 · src/common/controldata_utils.c:259 —
WAIT_EVENT_CONTROL_FILE_SYNC_UPDATE
关联控制项与信号
- GUC: 无直接关联项。
- 指标: [metric:waiting_sessions] · [metric:wait_event_share] · [metric:io_read_time] · [metric:io_write_time]
6.13 - IO: ControlFileWrite
ControlFileWrite
版本PG 13-18
证据2 个源码位置
官方描述译文
等待向 pg_control 文件写入数据。
| PG 13 | PG 14 | PG 15 | PG 16 | PG 17 | PG 18 |
|---|---|---|---|---|---|
| ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
触发机制
WAIT_EVENT_CONTROL_FILE_WRITE 位于 src/backend/access/transam/xlog.c:4315,是经 grep 核验的报告路径。公共身份/资源映射位于 src/backend/utils/activity/wait_event_names.txt:208。探针覆盖的操作是:等待向 pg_control 文件写入数据。PostgreSQL 在 ControlFileWrite 所表示的文件或异步 I/O 操作周围报告此事件;内核、存储栈或 I/O worker 完成该步骤后,后端继续执行。
正常还是麻烦?
- 正常: 当负载本来就应以当前速率执行对应的读取、写入、同步、分配或完成操作时,这项等待正常。
- 需要调查: 若它持续存在并伴随前台延迟、大量并发等待者、存储长尾延迟、限速或错误,应当调查。
诊断 SQL
处置建议
- 确认当前负载阶段本来就应访问这类文件。
- 在可用版本上关联 pg_stat_io 与具体设备延迟。
- 先修复访问路径、突发形状或受影响存储层,再调整无关的内存参数。
源码证据
- PostgreSQL 18.6 · src/backend/access/transam/xlog.c:4315 —
WAIT_EVENT_CONTROL_FILE_WRITE - PostgreSQL 18.6 · src/backend/utils/activity/wait_event_names.txt:208 —
CONTROL_FILE_WRITE
关联控制项与信号
- GUC: 无直接关联项。
- 指标: [metric:waiting_sessions] · [metric:wait_event_share] · [metric:io_read_time] · [metric:io_write_time]
6.14 - IO: ControlFileWriteUpdate
ControlFileWriteUpdate
版本PG 13-18
证据2 个源码位置
官方描述译文
等待通过写入来更新 pg_control 文件。
| PG 13 | PG 14 | PG 15 | PG 16 | PG 17 | PG 18 |
|---|---|---|---|---|---|
| ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
触发机制
WAIT_EVENT_CONTROL_FILE_WRITE_UPDATE 位于 src/common/controldata_utils.c:235,是经 grep 核验的报告路径。公共身份/资源映射位于 src/backend/utils/activity/wait_event_names.txt:209。探针覆盖的操作是:等待通过写入来更新 pg_control 文件。PostgreSQL 在 ControlFileWriteUpdate 所表示的文件或异步 I/O 操作周围报告此事件;内核、存储栈或 I/O worker 完成该步骤后,后端继续执行。
正常还是麻烦?
- 正常: 当负载本来就应以当前速率执行对应的读取、写入、同步、分配或完成操作时,这项等待正常。
- 需要调查: 若它持续存在并伴随前台延迟、大量并发等待者、存储长尾延迟、限速或错误,应当调查。
诊断 SQL
处置建议
- 确认当前负载阶段本来就应访问这类文件。
- 在可用版本上关联 pg_stat_io 与具体设备延迟。
- 先修复访问路径、突发形状或受影响存储层,再调整无关的内存参数。
源码证据
- PostgreSQL 18.6 · src/backend/utils/activity/wait_event_names.txt:209 —
CONTROL_FILE_WRITE_UPDATE - PostgreSQL 18.6 · src/common/controldata_utils.c:235 —
WAIT_EVENT_CONTROL_FILE_WRITE_UPDATE
关联控制项与信号
- GUC: 无直接关联项。
- 指标: [metric:waiting_sessions] · [metric:wait_event_share] · [metric:io_read_time] · [metric:io_write_time]
6.15 - IO: CopyFileCopy
CopyFileCopy
版本PG 18
证据2 个源码位置
官方描述译文
等待文件复制操作完成。
| PG 13 | PG 14 | PG 15 | PG 16 | PG 17 | PG 18 |
|---|---|---|---|---|---|
| — | — | — | — | — | ✓ |
触发机制
WAIT_EVENT_COPY_FILE_COPY 位于 src/backend/storage/file/copydir.c:270,是经 grep 核验的报告路径。公共身份/资源映射位于 src/backend/utils/activity/wait_event_names.txt:210。探针覆盖的操作是:等待文件复制操作完成。PostgreSQL 在 CopyFileCopy 所表示的文件或异步 I/O 操作周围报告此事件;内核、存储栈或 I/O worker 完成该步骤后,后端继续执行。
正常还是麻烦?
- 正常: 当负载本来就应以当前速率执行对应的读取、写入、同步、分配或完成操作时,这项等待正常。
- 需要调查: 若它持续存在并伴随前台延迟、大量并发等待者、存储长尾延迟、限速或错误,应当调查。
诊断 SQL
处置建议
- 确认当前负载阶段本来就应访问这类文件。
- 在可用版本上关联 pg_stat_io 与具体设备延迟。
- 先修复访问路径、突发形状或受影响存储层,再调整无关的内存参数。
源码证据
- PostgreSQL 18.6 · src/backend/storage/file/copydir.c:270 —
WAIT_EVENT_COPY_FILE_COPY - PostgreSQL 18.6 · src/backend/utils/activity/wait_event_names.txt:210 —
COPY_FILE_COPY
关联控制项与信号
- GUC: 无直接关联项。
- 指标: [metric:waiting_sessions] · [metric:wait_event_share] · [metric:io_read_time] · [metric:io_write_time]
6.16 - IO: CopyFileRead
CopyFileRead
版本PG 13-18
证据2 个源码位置
官方描述译文
等待在文件复制操作期间读取数据。
| PG 13 | PG 14 | PG 15 | PG 16 | PG 17 | PG 18 |
|---|---|---|---|---|---|
| ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
触发机制
WAIT_EVENT_COPY_FILE_READ 位于 src/backend/storage/file/copydir.c:195,是经 grep 核验的报告路径。公共身份/资源映射位于 src/backend/utils/activity/wait_event_names.txt:211。探针覆盖的操作是:等待在文件复制操作期间读取数据。PostgreSQL 在 CopyFileRead 所表示的文件或异步 I/O 操作周围报告此事件;内核、存储栈或 I/O worker 完成该步骤后,后端继续执行。
正常还是麻烦?
- 正常: 当负载本来就应以当前速率执行对应的读取、写入、同步、分配或完成操作时,这项等待正常。
- 需要调查: 若它持续存在并伴随前台延迟、大量并发等待者、存储长尾延迟、限速或错误,应当调查。
诊断 SQL
处置建议
- 确认当前负载阶段本来就应访问这类文件。
- 在可用版本上关联 pg_stat_io 与具体设备延迟。
- 先修复访问路径、突发形状或受影响存储层,再调整无关的内存参数。
源码证据
- PostgreSQL 18.6 · src/backend/storage/file/copydir.c:195 —
WAIT_EVENT_COPY_FILE_READ - PostgreSQL 18.6 · src/backend/utils/activity/wait_event_names.txt:211 —
COPY_FILE_READ
关联控制项与信号
- GUC: 无直接关联项。
- 指标: [metric:waiting_sessions] · [metric:wait_event_share] · [metric:io_read_time] · [metric:io_write_time]
6.17 - IO: CopyFileWrite
CopyFileWrite
版本PG 13-18
证据2 个源码位置
官方描述译文
等待在文件复制操作期间写入数据。
| PG 13 | PG 14 | PG 15 | PG 16 | PG 17 | PG 18 |
|---|---|---|---|---|---|
| ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
触发机制
WAIT_EVENT_COPY_FILE_WRITE 位于 src/backend/storage/file/copydir.c:205,是经 grep 核验的报告路径。公共身份/资源映射位于 src/backend/utils/activity/wait_event_names.txt:212。探针覆盖的操作是:等待在文件复制操作期间写入数据。PostgreSQL 在 CopyFileWrite 所表示的文件或异步 I/O 操作周围报告此事件;内核、存储栈或 I/O worker 完成该步骤后,后端继续执行。
正常还是麻烦?
- 正常: 当负载本来就应以当前速率执行对应的读取、写入、同步、分配或完成操作时,这项等待正常。
- 需要调查: 若它持续存在并伴随前台延迟、大量并发等待者、存储长尾延迟、限速或错误,应当调查。
诊断 SQL
处置建议
- 确认当前负载阶段本来就应访问这类文件。
- 在可用版本上关联 pg_stat_io 与具体设备延迟。
- 先修复访问路径、突发形状或受影响存储层,再调整无关的内存参数。
源码证据
- PostgreSQL 18.6 · src/backend/storage/file/copydir.c:205 —
WAIT_EVENT_COPY_FILE_WRITE - PostgreSQL 18.6 · src/backend/utils/activity/wait_event_names.txt:212 —
COPY_FILE_WRITE
关联控制项与信号
- GUC: 无直接关联项。
- 指标: [metric:waiting_sessions] · [metric:wait_event_share] · [metric:io_read_time] · [metric:io_write_time]
6.18 - IO: DataFileExtend
DataFileExtend
版本PG 13-18
证据2 个源码位置
官方描述译文
等待扩展 relation 数据文件。
| PG 13 | PG 14 | PG 15 | PG 16 | PG 17 | PG 18 |
|---|---|---|---|---|---|
| ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
触发机制
WAIT_EVENT_DATA_FILE_EXTEND 位于 src/backend/storage/smgr/md.c:512,是经 grep 核验的报告路径。公共身份/资源映射位于 src/backend/utils/activity/wait_event_names.txt:213。探针覆盖的操作是:等待扩展 relation 数据文件。PostgreSQL 在 DataFileExtend 所表示的文件或异步 I/O 操作周围报告此事件;内核、存储栈或 I/O worker 完成该步骤后,后端继续执行。
正常还是麻烦?
- 正常: 当负载本来就应以当前速率执行对应的读取、写入、同步、分配或完成操作时,这项等待正常。
- 需要调查: 若它持续存在并伴随前台延迟、大量并发等待者、存储长尾延迟、限速或错误,应当调查。
诊断 SQL
处置建议
- 确认当前负载阶段本来就应访问这类文件。
- 在可用版本上关联 pg_stat_io 与具体设备延迟。
- 先修复访问路径、突发形状或受影响存储层,再调整无关的内存参数。
源码证据
- PostgreSQL 18.6 · src/backend/storage/smgr/md.c:512 —
WAIT_EVENT_DATA_FILE_EXTEND - PostgreSQL 18.6 · src/backend/utils/activity/wait_event_names.txt:213 —
DATA_FILE_EXTEND
关联控制项与信号
- GUC: 无直接关联项。
- 指标: [metric:waiting_sessions] · [metric:wait_event_share] · [metric:io_read_time] · [metric:io_write_time]
6.19 - IO: DataFileFlush
DataFileFlush
版本PG 13-18
证据2 个源码位置
官方描述译文
等待 relation 数据文件到达持久化存储。
| PG 13 | PG 14 | PG 15 | PG 16 | PG 17 | PG 18 |
|---|---|---|---|---|---|
| ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
触发机制
WAIT_EVENT_DATA_FILE_FLUSH 位于 src/backend/storage/smgr/md.c:1208,是经 grep 核验的报告路径。公共身份/资源映射位于 src/backend/utils/activity/wait_event_names.txt:214。探针覆盖的操作是:等待 relation 数据文件到达持久化存储。PostgreSQL 在 DataFileFlush 所表示的文件或异步 I/O 操作周围报告此事件;内核、存储栈或 I/O worker 完成该步骤后,后端继续执行。
正常还是麻烦?
- 正常: 当负载本来就应以当前速率执行对应的读取、写入、同步、分配或完成操作时,这项等待正常。
- 需要调查: 若它持续存在并伴随前台延迟、大量并发等待者、存储长尾延迟、限速或错误,应当调查。
诊断 SQL
处置建议
- 确认当前负载阶段本来就应访问这类文件。
- 在可用版本上关联 pg_stat_io 与具体设备延迟。
- 先修复访问路径、突发形状或受影响存储层,再调整无关的内存参数。
源码证据
- PostgreSQL 18.6 · src/backend/storage/smgr/md.c:1208 —
WAIT_EVENT_DATA_FILE_FLUSH - PostgreSQL 18.6 · src/backend/utils/activity/wait_event_names.txt:214 —
DATA_FILE_FLUSH
关联控制项与信号
- GUC: 无直接关联项。
- 指标: [metric:waiting_sessions] · [metric:wait_event_share] · [metric:io_read_time] · [metric:io_write_time]
6.20 - IO: DataFileImmediateSync
DataFileImmediateSync
版本PG 13-18
证据2 个源码位置
官方描述译文
等待将 relation 数据文件立即同步到持久化存储。
| PG 13 | PG 14 | PG 15 | PG 16 | PG 17 | PG 18 |
|---|---|---|---|---|---|
| ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
触发机制
WAIT_EVENT_DATA_FILE_IMMEDIATE_SYNC 位于 src/backend/storage/smgr/md.c:1466,是经 grep 核验的报告路径。公共身份/资源映射位于 src/backend/utils/activity/wait_event_names.txt:215。探针覆盖的操作是:等待将 relation 数据文件立即同步到持久化存储。PostgreSQL 在 DataFileImmediateSync 所表示的文件或异步 I/O 操作周围报告此事件;内核、存储栈或 I/O worker 完成该步骤后,后端继续执行。
正常还是麻烦?
- 正常: 当负载本来就应以当前速率执行对应的读取、写入、同步、分配或完成操作时,这项等待正常。
- 需要调查: 若它持续存在并伴随前台延迟、大量并发等待者、存储长尾延迟、限速或错误,应当调查。
诊断 SQL
处置建议
- 确认当前负载阶段本来就应访问这类文件。
- 在可用版本上关联 pg_stat_io 与具体设备延迟。
- 先修复访问路径、突发形状或受影响存储层,再调整无关的内存参数。
源码证据
- PostgreSQL 18.6 · src/backend/storage/smgr/md.c:1466 —
WAIT_EVENT_DATA_FILE_IMMEDIATE_SYNC - PostgreSQL 18.6 · src/backend/utils/activity/wait_event_names.txt:215 —
DATA_FILE_IMMEDIATE_SYNC
关联控制项与信号
- GUC: 无直接关联项。
- 指标: [metric:waiting_sessions] · [metric:wait_event_share] · [metric:io_read_time] · [metric:io_write_time]
6.21 - IO: DataFilePrefetch
DataFilePrefetch
版本PG 13-18
证据2 个源码位置
官方描述译文
等待从 relation 数据文件异步预取数据。
| PG 13 | PG 14 | PG 15 | PG 16 | PG 17 | PG 18 |
|---|---|---|---|---|---|
| ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
触发机制
WAIT_EVENT_DATA_FILE_PREFETCH 位于 src/backend/storage/smgr/md.c:767,是经 grep 核验的报告路径。公共身份/资源映射位于 src/backend/utils/activity/wait_event_names.txt:216。探针覆盖的操作是:等待从 relation 数据文件异步预取数据。PostgreSQL 在 DataFilePrefetch 所表示的文件或异步 I/O 操作周围报告此事件;内核、存储栈或 I/O worker 完成该步骤后,后端继续执行。
正常还是麻烦?
- 正常: 当负载本来就应以当前速率执行对应的读取、写入、同步、分配或完成操作时,这项等待正常。
- 需要调查: 若它持续存在并伴随前台延迟、大量并发等待者、存储长尾延迟、限速或错误,应当调查。
诊断 SQL
处置建议
- 确认当前负载阶段本来就应访问这类文件。
- 在可用版本上关联 pg_stat_io 与具体设备延迟。
- 先修复访问路径、突发形状或受影响存储层,再调整无关的内存参数。
源码证据
- PostgreSQL 18.6 · src/backend/storage/smgr/md.c:767 —
WAIT_EVENT_DATA_FILE_PREFETCH - PostgreSQL 18.6 · src/backend/utils/activity/wait_event_names.txt:216 —
DATA_FILE_PREFETCH
关联控制项与信号
- GUC: 无直接关联项。
- 指标: [metric:waiting_sessions] · [metric:wait_event_share] · [metric:io_read_time] · [metric:io_write_time]
6.22 - IO: DataFileRead
DataFileRead
版本PG 13-18
证据2 个源码位置
官方描述译文
等待从 relation 数据文件中读取数据。
| PG 13 | PG 14 | PG 15 | PG 16 | PG 17 | PG 18 |
|---|---|---|---|---|---|
| ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
触发机制
WAIT_EVENT_DATA_FILE_READ 位于 src/backend/storage/aio/aio_io.c:127,是经 grep 核验的报告路径。公共身份/资源映射位于 src/backend/utils/activity/wait_event_names.txt:217。探针覆盖的操作是:等待从 relation 数据文件中读取数据。PostgreSQL 在 DataFileRead 所表示的文件或异步 I/O 操作周围报告此事件;内核、存储栈或 I/O worker 完成该步骤后,后端继续执行。
正常还是麻烦?
- 正常: 当负载本来就应以当前速率执行对应的读取、写入、同步、分配或完成操作时,这项等待正常。
- 需要调查: 若它持续存在并伴随前台延迟、大量并发等待者、存储长尾延迟、限速或错误,应当调查。
诊断 SQL
处置建议
- 确认当前负载阶段本来就应访问这类文件。
- 在可用版本上关联 pg_stat_io 与具体设备延迟。
- 先修复访问路径、突发形状或受影响存储层,再调整无关的内存参数。
源码证据
- PostgreSQL 18.6 · src/backend/storage/aio/aio_io.c:127 —
WAIT_EVENT_DATA_FILE_READ - PostgreSQL 18.6 · src/backend/utils/activity/wait_event_names.txt:217 —
DATA_FILE_READ
关联控制项与信号
- GUC: 无直接关联项。
- 指标: [metric:waiting_sessions] · [metric:wait_event_share] · [metric:io_read_time] · [metric:io_write_time]
6.23 - IO: DataFileSync
DataFileSync
版本PG 13-18
证据2 个源码位置
官方描述译文
等待 relation 数据文件的变更到达持久化存储。
| PG 13 | PG 14 | PG 15 | PG 16 | PG 17 | PG 18 |
|---|---|---|---|---|---|
| ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
触发机制
WAIT_EVENT_DATA_FILE_SYNC 位于 src/backend/storage/smgr/md.c:1526,是经 grep 核验的报告路径。公共身份/资源映射位于 src/backend/utils/activity/wait_event_names.txt:218。探针覆盖的操作是:等待 relation 数据文件的变更到达持久化存储。PostgreSQL 在 DataFileSync 所表示的文件或异步 I/O 操作周围报告此事件;内核、存储栈或 I/O worker 完成该步骤后,后端继续执行。
正常还是麻烦?
- 正常: 当负载本来就应以当前速率执行对应的读取、写入、同步、分配或完成操作时,这项等待正常。
- 需要调查: 若它持续存在并伴随前台延迟、大量并发等待者、存储长尾延迟、限速或错误,应当调查。
诊断 SQL
处置建议
- 确认当前负载阶段本来就应访问这类文件。
- 在可用版本上关联 pg_stat_io 与具体设备延迟。
- 先修复访问路径、突发形状或受影响存储层,再调整无关的内存参数。
源码证据
- PostgreSQL 18.6 · src/backend/storage/smgr/md.c:1526 —
WAIT_EVENT_DATA_FILE_SYNC - PostgreSQL 18.6 · src/backend/utils/activity/wait_event_names.txt:218 —
DATA_FILE_SYNC
关联控制项与信号
- GUC: 无直接关联项。
- 指标: [metric:waiting_sessions] · [metric:wait_event_share] · [metric:io_read_time] · [metric:io_write_time]
6.24 - IO: DataFileTruncate
DataFileTruncate
版本PG 13-18
证据2 个源码位置
官方描述译文
等待截断 relation 数据文件。
| PG 13 | PG 14 | PG 15 | PG 16 | PG 17 | PG 18 |
|---|---|---|---|---|---|
| ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
触发机制
WAIT_EVENT_DATA_FILE_TRUNCATE 位于 src/backend/storage/smgr/md.c:1329,是经 grep 核验的报告路径。公共身份/资源映射位于 src/backend/utils/activity/wait_event_names.txt:219。探针覆盖的操作是:等待截断 relation 数据文件。PostgreSQL 在 DataFileTruncate 所表示的文件或异步 I/O 操作周围报告此事件;内核、存储栈或 I/O worker 完成该步骤后,后端继续执行。
正常还是麻烦?
- 正常: 当负载本来就应以当前速率执行对应的读取、写入、同步、分配或完成操作时,这项等待正常。
- 需要调查: 若它持续存在并伴随前台延迟、大量并发等待者、存储长尾延迟、限速或错误,应当调查。
诊断 SQL
处置建议
- 确认当前负载阶段本来就应访问这类文件。
- 在可用版本上关联 pg_stat_io 与具体设备延迟。
- 先修复访问路径、突发形状或受影响存储层,再调整无关的内存参数。
源码证据
- PostgreSQL 18.6 · src/backend/storage/smgr/md.c:1329 —
WAIT_EVENT_DATA_FILE_TRUNCATE - PostgreSQL 18.6 · src/backend/utils/activity/wait_event_names.txt:219 —
DATA_FILE_TRUNCATE
关联控制项与信号
- GUC: 无直接关联项。
- 指标: [metric:waiting_sessions] · [metric:wait_event_share] · [metric:io_read_time] · [metric:io_write_time]
6.25 - IO: DataFileWrite
DataFileWrite
版本PG 13-18
证据2 个源码位置
官方描述译文
等待向 relation 数据文件写入数据。
| PG 13 | PG 14 | PG 15 | PG 16 | PG 17 | PG 18 |
|---|---|---|---|---|---|
| ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
触发机制
WAIT_EVENT_DATA_FILE_WRITE 位于 src/backend/storage/aio/aio_io.c:134,是经 grep 核验的报告路径。公共身份/资源映射位于 src/backend/utils/activity/wait_event_names.txt:220。探针覆盖的操作是:等待向 relation 数据文件写入数据。PostgreSQL 在 DataFileWrite 所表示的文件或异步 I/O 操作周围报告此事件;内核、存储栈或 I/O worker 完成该步骤后,后端继续执行。
正常还是麻烦?
- 正常: 当负载本来就应以当前速率执行对应的读取、写入、同步、分配或完成操作时,这项等待正常。
- 需要调查: 若它持续存在并伴随前台延迟、大量并发等待者、存储长尾延迟、限速或错误,应当调查。
诊断 SQL
处置建议
- 确认当前负载阶段本来就应访问这类文件。
- 在可用版本上关联 pg_stat_io 与具体设备延迟。
- 先修复访问路径、突发形状或受影响存储层,再调整无关的内存参数。
源码证据
- PostgreSQL 18.6 · src/backend/storage/aio/aio_io.c:134 —
WAIT_EVENT_DATA_FILE_WRITE - PostgreSQL 18.6 · src/backend/utils/activity/wait_event_names.txt:220 —
DATA_FILE_WRITE
关联控制项与信号
- GUC: 无直接关联项。
- 指标: [metric:waiting_sessions] · [metric:wait_event_share] · [metric:io_read_time] · [metric:io_write_time]
6.26 - IO: DsmAllocate
DsmAllocate
版本PG 17-18
证据4 个源码位置
官方描述译文
等待分配动态共享内存段。
| PG 13 | PG 14 | PG 15 | PG 16 | PG 17 | PG 18 |
|---|---|---|---|---|---|
| — | — | — | — | ✓ | ✓ |
历史名称:IO/DSMAllocate (PG 16)
触发机制
WAIT_EVENT_DSM_ALLOCATE 位于 src/backend/storage/ipc/dsm_impl.c:366,是经 grep 核验的报告路径。公共身份/资源映射位于 src/backend/utils/activity/wait_event.c:604。探针覆盖的操作是:等待分配动态共享内存段。PostgreSQL 在 DsmAllocate 所表示的文件或异步 I/O 操作周围报告此事件;内核、存储栈或 I/O worker 完成该步骤后,后端继续执行。
正常还是麻烦?
- 正常: 当负载本来就应以当前速率执行对应的读取、写入、同步、分配或完成操作时,这项等待正常。
- 需要调查: 若它持续存在并伴随前台延迟、大量并发等待者、存储长尾延迟、限速或错误,应当调查。
诊断 SQL
处置建议
- 确认当前负载阶段本来就应访问这类文件。
- 在可用版本上关联 pg_stat_io 与具体设备延迟。
- 先修复访问路径、突发形状或受影响存储层,再调整无关的内存参数。
源码证据
- PostgreSQL 16.15 · src/backend/storage/ipc/dsm_impl.c:366 —
WAIT_EVENT_DSM_ALLOCATE - PostgreSQL 16.15 · src/backend/utils/activity/wait_event.c:604 —
DSMAllocate - PostgreSQL 18.6 · src/backend/storage/ipc/dsm_impl.c:366 —
WAIT_EVENT_DSM_ALLOCATE - PostgreSQL 18.6 · src/backend/utils/activity/wait_event_names.txt:221 —
DSM_ALLOCATE
关联控制项与信号
- GUC: 无直接关联项。
- 指标: [metric:waiting_sessions] · [metric:wait_event_share] · [metric:io_read_time] · [metric:io_write_time]
6.27 - IO: DsmFillZeroWrite
DsmFillZeroWrite
版本PG 17-18
证据4 个源码位置
官方描述译文
等待用零值填充动态共享内存的后备文件。
| PG 13 | PG 14 | PG 15 | PG 16 | PG 17 | PG 18 |
|---|---|---|---|---|---|
| — | — | — | — | ✓ | ✓ |
历史名称:IO/DSMFillZeroWrite (PG 13-16)
触发机制
WAIT_EVENT_DSM_FILL_ZERO_WRITE 位于 src/backend/storage/ipc/dsm_impl.c:891,是经 grep 核验的报告路径。公共身份/资源映射位于 src/backend/utils/activity/wait_event.c:607。探针覆盖的操作是:等待用零值填充动态共享内存的后备文件。PostgreSQL 在 DsmFillZeroWrite 所表示的文件或异步 I/O 操作周围报告此事件;内核、存储栈或 I/O worker 完成该步骤后,后端继续执行。
正常还是麻烦?
- 正常: 当负载本来就应以当前速率执行对应的读取、写入、同步、分配或完成操作时,这项等待正常。
- 需要调查: 若它持续存在并伴随前台延迟、大量并发等待者、存储长尾延迟、限速或错误,应当调查。
诊断 SQL
处置建议
- 确认当前负载阶段本来就应访问这类文件。
- 在可用版本上关联 pg_stat_io 与具体设备延迟。
- 先修复访问路径、突发形状或受影响存储层,再调整无关的内存参数。
源码证据
- PostgreSQL 16.15 · src/backend/storage/ipc/dsm_impl.c:891 —
WAIT_EVENT_DSM_FILL_ZERO_WRITE - PostgreSQL 16.15 · src/backend/utils/activity/wait_event.c:607 —
DSMFillZeroWrite - PostgreSQL 18.6 · src/backend/storage/ipc/dsm_impl.c:891 —
WAIT_EVENT_DSM_FILL_ZERO_WRITE - PostgreSQL 18.6 · src/backend/utils/activity/wait_event_names.txt:222 —
DSM_FILL_ZERO_WRITE
关联控制项与信号
- GUC: 无直接关联项。
- 指标: [metric:waiting_sessions] · [metric:wait_event_share] · [metric:io_read_time] · [metric:io_write_time]
6.28 - IO: LockFileAddtodatadirRead
LockFileAddtodatadirRead
版本PG 17-18
证据4 个源码位置
官方描述译文
等待在向数据目录锁文件添加一行时读取数据。
| PG 13 | PG 14 | PG 15 | PG 16 | PG 17 | PG 18 |
|---|---|---|---|---|---|
| — | — | — | — | ✓ | ✓ |
历史名称:IO/LockFileAddToDataDirRead (PG 13-16)
触发机制
WAIT_EVENT_LOCK_FILE_ADDTODATADIR_READ 位于 src/backend/utils/init/miscinit.c:1586,是经 grep 核验的报告路径。公共身份/资源映射位于 src/backend/utils/activity/wait_event.c:610。探针覆盖的操作是:等待在向数据目录锁文件添加一行时读取数据。PostgreSQL 在 LockFileAddtodatadirRead 所表示的文件或异步 I/O 操作周围报告此事件;内核、存储栈或 I/O worker 完成该步骤后,后端继续执行。
正常还是麻烦?
- 正常: 当负载本来就应以当前速率执行对应的读取、写入、同步、分配或完成操作时,这项等待正常。
- 需要调查: 若它持续存在并伴随前台延迟、大量并发等待者、存储长尾延迟、限速或错误,应当调查。
诊断 SQL
处置建议
- 确认当前负载阶段本来就应访问这类文件。
- 在可用版本上关联 pg_stat_io 与具体设备延迟。
- 先修复访问路径、突发形状或受影响存储层,再调整无关的内存参数。
源码证据
- PostgreSQL 16.15 · src/backend/utils/activity/wait_event.c:610 —
LockFileAddToDataDirRead - PostgreSQL 16.15 · src/backend/utils/init/miscinit.c:1586 —
WAIT_EVENT_LOCK_FILE_ADDTODATADIR_READ - PostgreSQL 18.6 · src/backend/utils/activity/wait_event_names.txt:223 —
LOCK_FILE_ADDTODATADIR_READ - PostgreSQL 18.6 · src/backend/utils/init/miscinit.c:1590 —
WAIT_EVENT_LOCK_FILE_ADDTODATADIR_READ
关联控制项与信号
- GUC: 无直接关联项。
- 指标: [metric:waiting_sessions] · [metric:wait_event_share] · [metric:io_read_time] · [metric:io_write_time]
6.29 - IO: LockFileAddtodatadirSync
LockFileAddtodatadirSync
版本PG 17-18
证据4 个源码位置
官方描述译文
等待向数据目录锁文件添加一行时写入的数据到达持久化存储。
| PG 13 | PG 14 | PG 15 | PG 16 | PG 17 | PG 18 |
|---|---|---|---|---|---|
| — | — | — | — | ✓ | ✓ |
历史名称:IO/LockFileAddToDataDirSync (PG 13-16)
触发机制
WAIT_EVENT_LOCK_FILE_ADDTODATADIR_SYNC 位于 src/backend/utils/init/miscinit.c:1663,是经 grep 核验的报告路径。公共身份/资源映射位于 src/backend/utils/activity/wait_event.c:613。探针覆盖的操作是:等待向数据目录锁文件添加一行时写入的数据到达持久化存储。PostgreSQL 在 LockFileAddtodatadirSync 所表示的文件或异步 I/O 操作周围报告此事件;内核、存储栈或 I/O worker 完成该步骤后,后端继续执行。
正常还是麻烦?
- 正常: 当负载本来就应以当前速率执行对应的读取、写入、同步、分配或完成操作时,这项等待正常。
- 需要调查: 若它持续存在并伴随前台延迟、大量并发等待者、存储长尾延迟、限速或错误,应当调查。
诊断 SQL
处置建议
- 确认当前负载阶段本来就应访问这类文件。
- 在可用版本上关联 pg_stat_io 与具体设备延迟。
- 先修复访问路径、突发形状或受影响存储层,再调整无关的内存参数。
源码证据
- PostgreSQL 16.15 · src/backend/utils/activity/wait_event.c:613 —
LockFileAddToDataDirSync - PostgreSQL 16.15 · src/backend/utils/init/miscinit.c:1663 —
WAIT_EVENT_LOCK_FILE_ADDTODATADIR_SYNC - PostgreSQL 18.6 · src/backend/utils/activity/wait_event_names.txt:224 —
LOCK_FILE_ADDTODATADIR_SYNC - PostgreSQL 18.6 · src/backend/utils/init/miscinit.c:1667 —
WAIT_EVENT_LOCK_FILE_ADDTODATADIR_SYNC
关联控制项与信号
- GUC: 无直接关联项。
- 指标: [metric:waiting_sessions] · [metric:wait_event_share] · [metric:io_read_time] · [metric:io_write_time]
6.30 - IO: LockFileAddtodatadirWrite
LockFileAddtodatadirWrite
版本PG 17-18
证据4 个源码位置
官方描述译文
等待在向数据目录锁文件添加一行时写入数据。
| PG 13 | PG 14 | PG 15 | PG 16 | PG 17 | PG 18 |
|---|---|---|---|---|---|
| — | — | — | — | ✓ | ✓ |
历史名称:IO/LockFileAddToDataDirWrite (PG 13-16)
触发机制
WAIT_EVENT_LOCK_FILE_ADDTODATADIR_WRITE 位于 src/backend/utils/init/miscinit.c:1648,是经 grep 核验的报告路径。公共身份/资源映射位于 src/backend/utils/activity/wait_event.c:616。探针覆盖的操作是:等待在向数据目录锁文件添加一行时写入数据。PostgreSQL 在 LockFileAddtodatadirWrite 所表示的文件或异步 I/O 操作周围报告此事件;内核、存储栈或 I/O worker 完成该步骤后,后端继续执行。
正常还是麻烦?
- 正常: 当负载本来就应以当前速率执行对应的读取、写入、同步、分配或完成操作时,这项等待正常。
- 需要调查: 若它持续存在并伴随前台延迟、大量并发等待者、存储长尾延迟、限速或错误,应当调查。
诊断 SQL
处置建议
- 确认当前负载阶段本来就应访问这类文件。
- 在可用版本上关联 pg_stat_io 与具体设备延迟。
- 先修复访问路径、突发形状或受影响存储层,再调整无关的内存参数。
源码证据
- PostgreSQL 16.15 · src/backend/utils/activity/wait_event.c:616 —
LockFileAddToDataDirWrite - PostgreSQL 16.15 · src/backend/utils/init/miscinit.c:1648 —
WAIT_EVENT_LOCK_FILE_ADDTODATADIR_WRITE - PostgreSQL 18.6 · src/backend/utils/activity/wait_event_names.txt:225 —
LOCK_FILE_ADDTODATADIR_WRITE - PostgreSQL 18.6 · src/backend/utils/init/miscinit.c:1652 —
WAIT_EVENT_LOCK_FILE_ADDTODATADIR_WRITE
关联控制项与信号
- GUC: 无直接关联项。
- 指标: [metric:waiting_sessions] · [metric:wait_event_share] · [metric:io_read_time] · [metric:io_write_time]
6.31 - IO: LockFileCreateRead
LockFileCreateRead
版本PG 13-18
证据2 个源码位置
官方描述译文
等待在创建数据目录锁文件时读取数据。
| PG 13 | PG 14 | PG 15 | PG 16 | PG 17 | PG 18 |
|---|---|---|---|---|---|
| ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
触发机制
WAIT_EVENT_LOCK_FILE_CREATE_READ 位于 src/backend/utils/init/miscinit.c:1302,是经 grep 核验的报告路径。公共身份/资源映射位于 src/backend/utils/activity/wait_event_names.txt:226。探针覆盖的操作是:等待在创建数据目录锁文件时读取数据。PostgreSQL 在 LockFileCreateRead 所表示的文件或异步 I/O 操作周围报告此事件;内核、存储栈或 I/O worker 完成该步骤后,后端继续执行。
正常还是麻烦?
- 正常: 当负载本来就应以当前速率执行对应的读取、写入、同步、分配或完成操作时,这项等待正常。
- 需要调查: 若它持续存在并伴随前台延迟、大量并发等待者、存储长尾延迟、限速或错误,应当调查。
诊断 SQL
处置建议
- 确认当前负载阶段本来就应访问这类文件。
- 在可用版本上关联 pg_stat_io 与具体设备延迟。
- 先修复访问路径、突发形状或受影响存储层,再调整无关的内存参数。
源码证据
- PostgreSQL 18.6 · src/backend/utils/activity/wait_event_names.txt:226 —
LOCK_FILE_CREATE_READ - PostgreSQL 18.6 · src/backend/utils/init/miscinit.c:1302 —
WAIT_EVENT_LOCK_FILE_CREATE_READ
关联控制项与信号
- GUC: 无直接关联项。
- 指标: [metric:waiting_sessions] · [metric:wait_event_share] · [metric:io_read_time] · [metric:io_write_time]
6.32 - IO: LockFileCreateSync
LockFileCreateSync
版本PG 13-18
证据2 个源码位置
官方描述译文
等待创建数据目录锁文件时写入的数据到达持久化存储。
| PG 13 | PG 14 | PG 15 | PG 16 | PG 17 | PG 18 |
|---|---|---|---|---|---|
| ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
触发机制
WAIT_EVENT_LOCK_FILE_CREATE_SYNC 位于 src/backend/utils/init/miscinit.c:1465,是经 grep 核验的报告路径。公共身份/资源映射位于 src/backend/utils/activity/wait_event_names.txt:227。探针覆盖的操作是:等待创建数据目录锁文件时写入的数据到达持久化存储。PostgreSQL 在 LockFileCreateSync 所表示的文件或异步 I/O 操作周围报告此事件;内核、存储栈或 I/O worker 完成该步骤后,后端继续执行。
正常还是麻烦?
- 正常: 当负载本来就应以当前速率执行对应的读取、写入、同步、分配或完成操作时,这项等待正常。
- 需要调查: 若它持续存在并伴随前台延迟、大量并发等待者、存储长尾延迟、限速或错误,应当调查。
诊断 SQL
处置建议
- 确认当前负载阶段本来就应访问这类文件。
- 在可用版本上关联 pg_stat_io 与具体设备延迟。
- 先修复访问路径、突发形状或受影响存储层,再调整无关的内存参数。
源码证据
- PostgreSQL 18.6 · src/backend/utils/activity/wait_event_names.txt:227 —
LOCK_FILE_CREATE_SYNC - PostgreSQL 18.6 · src/backend/utils/init/miscinit.c:1465 —
WAIT_EVENT_LOCK_FILE_CREATE_SYNC
关联控制项与信号
- GUC: 无直接关联项。
- 指标: [metric:waiting_sessions] · [metric:wait_event_share] · [metric:io_read_time] · [metric:io_write_time]
6.33 - IO: LockFileCreateWrite
LockFileCreateWrite
版本PG 13-18
证据2 个源码位置
官方描述译文
等待在创建数据目录锁文件时写入数据。
| PG 13 | PG 14 | PG 15 | PG 16 | PG 17 | PG 18 |
|---|---|---|---|---|---|
| ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
触发机制
WAIT_EVENT_LOCK_FILE_CREATE_WRITE 位于 src/backend/utils/init/miscinit.c:1450,是经 grep 核验的报告路径。公共身份/资源映射位于 src/backend/utils/activity/wait_event_names.txt:228。探针覆盖的操作是:等待在创建数据目录锁文件时写入数据。PostgreSQL 在 LockFileCreateWrite 所表示的文件或异步 I/O 操作周围报告此事件;内核、存储栈或 I/O worker 完成该步骤后,后端继续执行。
正常还是麻烦?
- 正常: 当负载本来就应以当前速率执行对应的读取、写入、同步、分配或完成操作时,这项等待正常。
- 需要调查: 若它持续存在并伴随前台延迟、大量并发等待者、存储长尾延迟、限速或错误,应当调查。
诊断 SQL
处置建议
- 确认当前负载阶段本来就应访问这类文件。
- 在可用版本上关联 pg_stat_io 与具体设备延迟。
- 先修复访问路径、突发形状或受影响存储层,再调整无关的内存参数。
源码证据
- PostgreSQL 18.6 · src/backend/utils/activity/wait_event_names.txt:228 —
LOCK_FILE_CREATE_WRITE - PostgreSQL 18.6 · src/backend/utils/init/miscinit.c:1450 —
WAIT_EVENT_LOCK_FILE_CREATE_WRITE
关联控制项与信号
- GUC: 无直接关联项。
- 指标: [metric:waiting_sessions] · [metric:wait_event_share] · [metric:io_read_time] · [metric:io_write_time]
6.34 - IO: LockFileRecheckdatadirRead
LockFileRecheckdatadirRead
版本PG 17-18
证据4 个源码位置
官方描述译文
等待在重新检查数据目录锁文件时读取数据。
| PG 13 | PG 14 | PG 15 | PG 16 | PG 17 | PG 18 |
|---|---|---|---|---|---|
| — | — | — | — | ✓ | ✓ |
历史名称:IO/LockFileReCheckDataDirRead (PG 13-16)
触发机制
WAIT_EVENT_LOCK_FILE_RECHECKDATADIR_READ 位于 src/backend/utils/init/miscinit.c:1728,是经 grep 核验的报告路径。公共身份/资源映射位于 src/backend/utils/activity/wait_event.c:628。探针覆盖的操作是:等待在重新检查数据目录锁文件时读取数据。PostgreSQL 在 LockFileRecheckdatadirRead 所表示的文件或异步 I/O 操作周围报告此事件;内核、存储栈或 I/O worker 完成该步骤后,后端继续执行。
正常还是麻烦?
- 正常: 当负载本来就应以当前速率执行对应的读取、写入、同步、分配或完成操作时,这项等待正常。
- 需要调查: 若它持续存在并伴随前台延迟、大量并发等待者、存储长尾延迟、限速或错误,应当调查。
诊断 SQL
处置建议
- 确认当前负载阶段本来就应访问这类文件。
- 在可用版本上关联 pg_stat_io 与具体设备延迟。
- 先修复访问路径、突发形状或受影响存储层,再调整无关的内存参数。
源码证据
- PostgreSQL 16.15 · src/backend/utils/activity/wait_event.c:628 —
LockFileReCheckDataDirRead - PostgreSQL 16.15 · src/backend/utils/init/miscinit.c:1728 —
WAIT_EVENT_LOCK_FILE_RECHECKDATADIR_READ - PostgreSQL 18.6 · src/backend/utils/activity/wait_event_names.txt:229 —
LOCK_FILE_RECHECKDATADIR_READ - PostgreSQL 18.6 · src/backend/utils/init/miscinit.c:1732 —
WAIT_EVENT_LOCK_FILE_RECHECKDATADIR_READ
关联控制项与信号
- GUC: 无直接关联项。
- 指标: [metric:waiting_sessions] · [metric:wait_event_share] · [metric:io_read_time] · [metric:io_write_time]
6.35 - IO: LogicalChangesRead
LogicalChangesRead
版本PG 14
证据1 个源码位置
官方描述译文
等待从逻辑变更文件中读取数据。
| PG 13 | PG 14 | PG 15 | PG 16 | PG 17 | PG 18 |
|---|---|---|---|---|---|
| — | ✓ | — | — | — | — |
触发机制
目录中仍保留该身份,但源码审计确认在 14 已没有活动报告点。已知曾可触发范围:none。下方定义位置作为负面证据保留;当前精确版本不会从核心代码路径发出此事件。 证据:pgsql-hackers confirmation。
正常还是麻烦?
- 正常: 在已审计的精确版本上,不应出现活动的核心触发。
- 需要调查: 若监控仍显示它,应核对精确小版本、扩展来源,并确认样本是否陈旧或来自另一台服务器。
诊断 SQL
处置建议
- 确认当前负载阶段本来就应访问这类文件。
- 在可用版本上关联 pg_stat_io 与具体设备延迟。
- 先修复访问路径、突发形状或受影响存储层,再调整无关的内存参数。
源码证据
- PostgreSQL 14.24 · src/backend/utils/activity/wait_event.c:727 —
LogicalChangesRead
关联控制项与信号
- GUC: 无直接关联项。
- 指标: [metric:waiting_sessions] · [metric:wait_event_share] · [metric:io_read_time] · [metric:io_write_time]
6.36 - IO: LogicalChangesWrite
LogicalChangesWrite
版本PG 14
证据1 个源码位置
官方描述译文
等待向逻辑变更文件写入数据。
| PG 13 | PG 14 | PG 15 | PG 16 | PG 17 | PG 18 |
|---|---|---|---|---|---|
| — | ✓ | — | — | — | — |
触发机制
目录中仍保留该身份,但源码审计确认在 14 已没有活动报告点。已知曾可触发范围:none。下方定义位置作为负面证据保留;当前精确版本不会从核心代码路径发出此事件。 证据:pgsql-hackers confirmation。
正常还是麻烦?
- 正常: 在已审计的精确版本上,不应出现活动的核心触发。
- 需要调查: 若监控仍显示它,应核对精确小版本、扩展来源,并确认样本是否陈旧或来自另一台服务器。
诊断 SQL
处置建议
- 确认当前负载阶段本来就应访问这类文件。
- 在可用版本上关联 pg_stat_io 与具体设备延迟。
- 先修复访问路径、突发形状或受影响存储层,再调整无关的内存参数。
源码证据
- PostgreSQL 14.24 · src/backend/utils/activity/wait_event.c:730 —
LogicalChangesWrite
关联控制项与信号
- GUC: 无直接关联项。
- 指标: [metric:waiting_sessions] · [metric:wait_event_share] · [metric:io_read_time] · [metric:io_write_time]
6.37 - IO: LogicalRewriteCheckpointSync
LogicalRewriteCheckpointSync
版本PG 13-18
证据2 个源码位置
官方描述译文
等待检查点期间的逻辑重写映射到达持久化存储。
| PG 13 | PG 14 | PG 15 | PG 16 | PG 17 | PG 18 |
|---|---|---|---|---|---|
| ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
触发机制
WAIT_EVENT_LOGICAL_REWRITE_CHECKPOINT_SYNC 位于 src/backend/access/heap/rewriteheap.c:1236,是经 grep 核验的报告路径。公共身份/资源映射位于 src/backend/utils/activity/wait_event_names.txt:230。探针覆盖的操作是:等待检查点期间的逻辑重写映射到达持久化存储。PostgreSQL 在 LogicalRewriteCheckpointSync 所表示的文件或异步 I/O 操作周围报告此事件;内核、存储栈或 I/O worker 完成该步骤后,后端继续执行。
正常还是麻烦?
- 正常: 当负载本来就应以当前速率执行对应的读取、写入、同步、分配或完成操作时,这项等待正常。
- 需要调查: 若它持续存在并伴随前台延迟、大量并发等待者、存储长尾延迟、限速或错误,应当调查。
诊断 SQL
处置建议
- 确认当前负载阶段本来就应访问这类文件。
- 在可用版本上关联 pg_stat_io 与具体设备延迟。
- 先修复访问路径、突发形状或受影响存储层,再调整无关的内存参数。
源码证据
- PostgreSQL 18.6 · src/backend/access/heap/rewriteheap.c:1236 —
WAIT_EVENT_LOGICAL_REWRITE_CHECKPOINT_SYNC - PostgreSQL 18.6 · src/backend/utils/activity/wait_event_names.txt:230 —
LOGICAL_REWRITE_CHECKPOINT_SYNC
关联控制项与信号
6.38 - IO: LogicalRewriteMappingSync
LogicalRewriteMappingSync
版本PG 13-18
证据2 个源码位置
官方描述译文
等待逻辑重写期间的映射数据到达持久化存储。
| PG 13 | PG 14 | PG 15 | PG 16 | PG 17 | PG 18 |
|---|---|---|---|---|---|
| ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
触发机制
WAIT_EVENT_LOGICAL_REWRITE_MAPPING_SYNC 位于 src/backend/access/heap/rewriteheap.c:1131,是经 grep 核验的报告路径。公共身份/资源映射位于 src/backend/utils/activity/wait_event_names.txt:231。探针覆盖的操作是:等待逻辑重写期间的映射数据到达持久化存储。PostgreSQL 在 LogicalRewriteMappingSync 所表示的文件或异步 I/O 操作周围报告此事件;内核、存储栈或 I/O worker 完成该步骤后,后端继续执行。
正常还是麻烦?
- 正常: 当负载本来就应以当前速率执行对应的读取、写入、同步、分配或完成操作时,这项等待正常。
- 需要调查: 若它持续存在并伴随前台延迟、大量并发等待者、存储长尾延迟、限速或错误,应当调查。
诊断 SQL
处置建议
- 确认当前负载阶段本来就应访问这类文件。
- 在可用版本上关联 pg_stat_io 与具体设备延迟。
- 先修复访问路径、突发形状或受影响存储层,再调整无关的内存参数。
源码证据
- PostgreSQL 18.6 · src/backend/access/heap/rewriteheap.c:1131 —
WAIT_EVENT_LOGICAL_REWRITE_MAPPING_SYNC - PostgreSQL 18.6 · src/backend/utils/activity/wait_event_names.txt:231 —
LOGICAL_REWRITE_MAPPING_SYNC
关联控制项与信号
- GUC: 无直接关联项。
- 指标: [metric:waiting_sessions] · [metric:wait_event_share] · [metric:io_read_time] · [metric:io_write_time]
6.39 - IO: LogicalRewriteMappingWrite
LogicalRewriteMappingWrite
版本PG 13-18
证据2 个源码位置
官方描述译文
等待在逻辑重写期间写入映射数据。
| PG 13 | PG 14 | PG 15 | PG 16 | PG 17 | PG 18 |
|---|---|---|---|---|---|
| ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
触发机制
WAIT_EVENT_LOGICAL_REWRITE_MAPPING_WRITE 位于 src/backend/access/heap/rewriteheap.c:1114,是经 grep 核验的报告路径。公共身份/资源映射位于 src/backend/utils/activity/wait_event_names.txt:232。探针覆盖的操作是:等待在逻辑重写期间写入映射数据。PostgreSQL 在 LogicalRewriteMappingWrite 所表示的文件或异步 I/O 操作周围报告此事件;内核、存储栈或 I/O worker 完成该步骤后,后端继续执行。
正常还是麻烦?
- 正常: 当负载本来就应以当前速率执行对应的读取、写入、同步、分配或完成操作时,这项等待正常。
- 需要调查: 若它持续存在并伴随前台延迟、大量并发等待者、存储长尾延迟、限速或错误,应当调查。
诊断 SQL
处置建议
- 确认当前负载阶段本来就应访问这类文件。
- 在可用版本上关联 pg_stat_io 与具体设备延迟。
- 先修复访问路径、突发形状或受影响存储层,再调整无关的内存参数。
源码证据
- PostgreSQL 18.6 · src/backend/access/heap/rewriteheap.c:1114 —
WAIT_EVENT_LOGICAL_REWRITE_MAPPING_WRITE - PostgreSQL 18.6 · src/backend/utils/activity/wait_event_names.txt:232 —
LOGICAL_REWRITE_MAPPING_WRITE
关联控制项与信号
- GUC: 无直接关联项。
- 指标: [metric:waiting_sessions] · [metric:wait_event_share] · [metric:io_read_time] · [metric:io_write_time]
6.40 - IO: LogicalRewriteSync
LogicalRewriteSync
版本PG 13-18
证据2 个源码位置
官方描述译文
等待逻辑重写映射到达持久化存储。
| PG 13 | PG 14 | PG 15 | PG 16 | PG 17 | PG 18 |
|---|---|---|---|---|---|
| ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
触发机制
WAIT_EVENT_LOGICAL_REWRITE_SYNC 位于 src/backend/access/heap/rewriteheap.c:922,是经 grep 核验的报告路径。公共身份/资源映射位于 src/backend/utils/activity/wait_event_names.txt:233。探针覆盖的操作是:等待逻辑重写映射到达持久化存储。PostgreSQL 在 LogicalRewriteSync 所表示的文件或异步 I/O 操作周围报告此事件;内核、存储栈或 I/O worker 完成该步骤后,后端继续执行。
正常还是麻烦?
- 正常: 当负载本来就应以当前速率执行对应的读取、写入、同步、分配或完成操作时,这项等待正常。
- 需要调查: 若它持续存在并伴随前台延迟、大量并发等待者、存储长尾延迟、限速或错误,应当调查。
诊断 SQL
处置建议
- 确认当前负载阶段本来就应访问这类文件。
- 在可用版本上关联 pg_stat_io 与具体设备延迟。
- 先修复访问路径、突发形状或受影响存储层,再调整无关的内存参数。
源码证据
- PostgreSQL 18.6 · src/backend/access/heap/rewriteheap.c:922 —
WAIT_EVENT_LOGICAL_REWRITE_SYNC - PostgreSQL 18.6 · src/backend/utils/activity/wait_event_names.txt:233 —
LOGICAL_REWRITE_SYNC
关联控制项与信号
- GUC: 无直接关联项。
- 指标: [metric:waiting_sessions] · [metric:wait_event_share] · [metric:io_read_time] · [metric:io_write_time]
6.41 - IO: LogicalRewriteTruncate
LogicalRewriteTruncate
版本PG 13-18
证据2 个源码位置
官方描述译文
等待在逻辑重写期间截断映射数据。
| PG 13 | PG 14 | PG 15 | PG 16 | PG 17 | PG 18 |
|---|---|---|---|---|---|
| ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
触发机制
WAIT_EVENT_LOGICAL_REWRITE_TRUNCATE 位于 src/backend/access/heap/rewriteheap.c:1100,是经 grep 核验的报告路径。公共身份/资源映射位于 src/backend/utils/activity/wait_event_names.txt:234。探针覆盖的操作是:等待在逻辑重写期间截断映射数据。PostgreSQL 在 LogicalRewriteTruncate 所表示的文件或异步 I/O 操作周围报告此事件;内核、存储栈或 I/O worker 完成该步骤后,后端继续执行。
正常还是麻烦?
- 正常: 当负载本来就应以当前速率执行对应的读取、写入、同步、分配或完成操作时,这项等待正常。
- 需要调查: 若它持续存在并伴随前台延迟、大量并发等待者、存储长尾延迟、限速或错误,应当调查。
诊断 SQL
处置建议
- 确认当前负载阶段本来就应访问这类文件。
- 在可用版本上关联 pg_stat_io 与具体设备延迟。
- 先修复访问路径、突发形状或受影响存储层,再调整无关的内存参数。
源码证据
- PostgreSQL 18.6 · src/backend/access/heap/rewriteheap.c:1100 —
WAIT_EVENT_LOGICAL_REWRITE_TRUNCATE - PostgreSQL 18.6 · src/backend/utils/activity/wait_event_names.txt:234 —
LOGICAL_REWRITE_TRUNCATE
关联控制项与信号
- GUC: 无直接关联项。
- 指标: [metric:waiting_sessions] · [metric:wait_event_share] · [metric:io_read_time] · [metric:io_write_time]
6.42 - IO: LogicalRewriteWrite
LogicalRewriteWrite
版本PG 13-18
证据2 个源码位置
官方描述译文
等待写入逻辑重写映射。
| PG 13 | PG 14 | PG 15 | PG 16 | PG 17 | PG 18 |
|---|---|---|---|---|---|
| ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
触发机制
WAIT_EVENT_LOGICAL_REWRITE_WRITE 位于 src/backend/access/heap/rewriteheap.c:881,是经 grep 核验的报告路径。公共身份/资源映射位于 src/backend/utils/activity/wait_event_names.txt:235。探针覆盖的操作是:等待写入逻辑重写映射。PostgreSQL 在 LogicalRewriteWrite 所表示的文件或异步 I/O 操作周围报告此事件;内核、存储栈或 I/O worker 完成该步骤后,后端继续执行。
正常还是麻烦?
- 正常: 当负载本来就应以当前速率执行对应的读取、写入、同步、分配或完成操作时,这项等待正常。
- 需要调查: 若它持续存在并伴随前台延迟、大量并发等待者、存储长尾延迟、限速或错误,应当调查。
诊断 SQL
处置建议
- 确认当前负载阶段本来就应访问这类文件。
- 在可用版本上关联 pg_stat_io 与具体设备延迟。
- 先修复访问路径、突发形状或受影响存储层,再调整无关的内存参数。
源码证据
- PostgreSQL 18.6 · src/backend/access/heap/rewriteheap.c:881 —
WAIT_EVENT_LOGICAL_REWRITE_WRITE - PostgreSQL 18.6 · src/backend/utils/activity/wait_event_names.txt:235 —
LOGICAL_REWRITE_WRITE
关联控制项与信号
- GUC: 无直接关联项。
- 指标: [metric:waiting_sessions] · [metric:wait_event_share] · [metric:io_read_time] · [metric:io_write_time]
6.43 - IO: LogicalSubxactRead
LogicalSubxactRead
版本PG 14
证据1 个源码位置
官方描述译文
等待从逻辑子事务文件中读取数据。
| PG 13 | PG 14 | PG 15 | PG 16 | PG 17 | PG 18 |
|---|---|---|---|---|---|
| — | ✓ | — | — | — | — |
触发机制
目录中仍保留该身份,但源码审计确认在 14 已没有活动报告点。已知曾可触发范围:none。下方定义位置作为负面证据保留;当前精确版本不会从核心代码路径发出此事件。 证据:pgsql-hackers confirmation。
正常还是麻烦?
- 正常: 在已审计的精确版本上,不应出现活动的核心触发。
- 需要调查: 若监控仍显示它,应核对精确小版本、扩展来源,并确认样本是否陈旧或来自另一台服务器。
诊断 SQL
处置建议
- 确认当前负载阶段本来就应访问这类文件。
- 在可用版本上关联 pg_stat_io 与具体设备延迟。
- 先修复访问路径、突发形状或受影响存储层,再调整无关的内存参数。
源码证据
- PostgreSQL 14.24 · src/backend/utils/activity/wait_event.c:733 —
LogicalSubxactRead
关联控制项与信号
6.44 - IO: LogicalSubxactWrite
LogicalSubxactWrite
版本PG 14
证据1 个源码位置
官方描述译文
等待向逻辑子事务文件写入数据。
| PG 13 | PG 14 | PG 15 | PG 16 | PG 17 | PG 18 |
|---|---|---|---|---|---|
| — | ✓ | — | — | — | — |
触发机制
目录中仍保留该身份,但源码审计确认在 14 已没有活动报告点。已知曾可触发范围:none。下方定义位置作为负面证据保留;当前精确版本不会从核心代码路径发出此事件。 证据:pgsql-hackers confirmation。
正常还是麻烦?
- 正常: 在已审计的精确版本上,不应出现活动的核心触发。
- 需要调查: 若监控仍显示它,应核对精确小版本、扩展来源,并确认样本是否陈旧或来自另一台服务器。
诊断 SQL
处置建议
- 确认当前负载阶段本来就应访问这类文件。
- 在可用版本上关联 pg_stat_io 与具体设备延迟。
- 先修复访问路径、突发形状或受影响存储层,再调整无关的内存参数。
源码证据
- PostgreSQL 14.24 · src/backend/utils/activity/wait_event.c:736 —
LogicalSubxactWrite
关联控制项与信号
6.45 - IO: RelationMapRead
RelationMapRead
版本PG 13-18
证据2 个源码位置
官方描述译文
等待读取 relation map 文件。
| PG 13 | PG 14 | PG 15 | PG 16 | PG 17 | PG 18 |
|---|---|---|---|---|---|
| ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
触发机制
WAIT_EVENT_RELATION_MAP_READ 位于 src/backend/utils/cache/relmapper.c:822,是经 grep 核验的报告路径。公共身份/资源映射位于 src/backend/utils/activity/wait_event_names.txt:236。探针覆盖的操作是:等待读取 relation map 文件。PostgreSQL 在 RelationMapRead 所表示的文件或异步 I/O 操作周围报告此事件;内核、存储栈或 I/O worker 完成该步骤后,后端继续执行。
正常还是麻烦?
- 正常: 当负载本来就应以当前速率执行对应的读取、写入、同步、分配或完成操作时,这项等待正常。
- 需要调查: 若它持续存在并伴随前台延迟、大量并发等待者、存储长尾延迟、限速或错误,应当调查。
诊断 SQL
处置建议
- 确认当前负载阶段本来就应访问这类文件。
- 在可用版本上关联 pg_stat_io 与具体设备延迟。
- 先修复访问路径、突发形状或受影响存储层,再调整无关的内存参数。
源码证据
- PostgreSQL 18.6 · src/backend/utils/activity/wait_event_names.txt:236 —
RELATION_MAP_READ - PostgreSQL 18.6 · src/backend/utils/cache/relmapper.c:822 —
WAIT_EVENT_RELATION_MAP_READ
关联控制项与信号
- GUC: 无直接关联项。
- 指标: [metric:waiting_sessions] · [metric:wait_event_share] · [metric:io_read_time] · [metric:io_write_time]
6.46 - IO: RelationMapReplace
RelationMapReplace
版本PG 16-18
证据2 个源码位置
官方描述译文
等待以持久化方式替换 relation map 文件。
| PG 13 | PG 14 | PG 15 | PG 16 | PG 17 | PG 18 |
|---|---|---|---|---|---|
| — | — | — | ✓ | ✓ | ✓ |
触发机制
WAIT_EVENT_RELATION_MAP_REPLACE 位于 src/backend/utils/cache/relmapper.c:988,是经 grep 核验的报告路径。公共身份/资源映射位于 src/backend/utils/activity/wait_event_names.txt:237。探针覆盖的操作是:等待以持久化方式替换 relation map 文件。PostgreSQL 在 RelationMapReplace 所表示的文件或异步 I/O 操作周围报告此事件;内核、存储栈或 I/O worker 完成该步骤后,后端继续执行。
正常还是麻烦?
- 正常: 当负载本来就应以当前速率执行对应的读取、写入、同步、分配或完成操作时,这项等待正常。
- 需要调查: 若它持续存在并伴随前台延迟、大量并发等待者、存储长尾延迟、限速或错误,应当调查。
诊断 SQL
处置建议
- 确认当前负载阶段本来就应访问这类文件。
- 在可用版本上关联 pg_stat_io 与具体设备延迟。
- 先修复访问路径、突发形状或受影响存储层,再调整无关的内存参数。
源码证据
- PostgreSQL 18.6 · src/backend/utils/activity/wait_event_names.txt:237 —
RELATION_MAP_REPLACE - PostgreSQL 18.6 · src/backend/utils/cache/relmapper.c:988 —
WAIT_EVENT_RELATION_MAP_REPLACE
关联控制项与信号
- GUC: 无直接关联项。
- 指标: [metric:waiting_sessions] · [metric:wait_event_share] · [metric:io_read_time] · [metric:io_write_time]
6.47 - IO: RelationMapSync
RelationMapSync
版本PG 13-15
证据2 个源码位置
官方描述译文
等待 relation map 文件到达持久化存储。
| PG 13 | PG 14 | PG 15 | PG 16 | PG 17 | PG 18 |
|---|---|---|---|---|---|
| ✓ | ✓ | ✓ | — | — | — |
触发机制
WAIT_EVENT_RELATION_MAP_SYNC 位于 src/backend/utils/cache/relmapper.c:957,是经 grep 核验的报告路径。公共身份/资源映射位于 src/backend/utils/activity/wait_event.c:637。探针覆盖的操作是:等待 relation map 文件到达持久化存储。PostgreSQL 在 RelationMapSync 所表示的文件或异步 I/O 操作周围报告此事件;内核、存储栈或 I/O worker 完成该步骤后,后端继续执行。
正常还是麻烦?
- 正常: 当负载本来就应以当前速率执行对应的读取、写入、同步、分配或完成操作时,这项等待正常。
- 需要调查: 若它持续存在并伴随前台延迟、大量并发等待者、存储长尾延迟、限速或错误,应当调查。
诊断 SQL
处置建议
- 确认当前负载阶段本来就应访问这类文件。
- 在可用版本上关联 pg_stat_io 与具体设备延迟。
- 先修复访问路径、突发形状或受影响存储层,再调整无关的内存参数。
源码证据
- PostgreSQL 15.19 · src/backend/utils/activity/wait_event.c:637 —
RelationMapSync - PostgreSQL 15.19 · src/backend/utils/cache/relmapper.c:957 —
WAIT_EVENT_RELATION_MAP_SYNC
关联控制项与信号
- GUC: 无直接关联项。
- 指标: [metric:waiting_sessions] · [metric:wait_event_share] · [metric:io_read_time] · [metric:io_write_time]
6.48 - IO: RelationMapWrite
RelationMapWrite
版本PG 13-18
证据2 个源码位置
官方描述译文
等待向 relation map 文件写入数据。
| PG 13 | PG 14 | PG 15 | PG 16 | PG 17 | PG 18 |
|---|---|---|---|---|---|
| ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
触发机制
WAIT_EVENT_RELATION_MAP_WRITE 位于 src/backend/utils/cache/relmapper.c:939,是经 grep 核验的报告路径。公共身份/资源映射位于 src/backend/utils/activity/wait_event_names.txt:238。探针覆盖的操作是:等待向 relation map 文件写入数据。PostgreSQL 在 RelationMapWrite 所表示的文件或异步 I/O 操作周围报告此事件;内核、存储栈或 I/O worker 完成该步骤后,后端继续执行。
正常还是麻烦?
- 正常: 当负载本来就应以当前速率执行对应的读取、写入、同步、分配或完成操作时,这项等待正常。
- 需要调查: 若它持续存在并伴随前台延迟、大量并发等待者、存储长尾延迟、限速或错误,应当调查。
诊断 SQL
处置建议
- 确认当前负载阶段本来就应访问这类文件。
- 在可用版本上关联 pg_stat_io 与具体设备延迟。
- 先修复访问路径、突发形状或受影响存储层,再调整无关的内存参数。
源码证据
- PostgreSQL 18.6 · src/backend/utils/activity/wait_event_names.txt:238 —
RELATION_MAP_WRITE - PostgreSQL 18.6 · src/backend/utils/cache/relmapper.c:939 —
WAIT_EVENT_RELATION_MAP_WRITE
关联控制项与信号
- GUC: 无直接关联项。
- 指标: [metric:waiting_sessions] · [metric:wait_event_share] · [metric:io_read_time] · [metric:io_write_time]
6.49 - IO: ReorderBufferRead
ReorderBufferRead
版本PG 13-18
证据2 个源码位置
官方描述译文
等待在 reorder buffer 管理期间读取数据。
| PG 13 | PG 14 | PG 15 | PG 16 | PG 17 | PG 18 |
|---|---|---|---|---|---|
| ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
触发机制
WAIT_EVENT_REORDER_BUFFER_READ 位于 src/backend/replication/logical/reorderbuffer.c:4609,是经 grep 核验的报告路径。公共身份/资源映射位于 src/backend/utils/activity/wait_event_names.txt:239。探针覆盖的操作是:等待在 reorder buffer 管理期间读取数据。PostgreSQL 在 ReorderBufferRead 所表示的文件或异步 I/O 操作周围报告此事件;内核、存储栈或 I/O worker 完成该步骤后,后端继续执行。
正常还是麻烦?
- 正常: 当负载本来就应以当前速率执行对应的读取、写入、同步、分配或完成操作时,这项等待正常。
- 需要调查: 若它持续存在并伴随前台延迟、大量并发等待者、存储长尾延迟、限速或错误,应当调查。
诊断 SQL
处置建议
- 确认当前负载阶段本来就应访问这类文件。
- 在可用版本上关联 pg_stat_io 与具体设备延迟。
- 先修复访问路径、突发形状或受影响存储层,再调整无关的内存参数。
源码证据
- PostgreSQL 18.6 · src/backend/replication/logical/reorderbuffer.c:4609 —
WAIT_EVENT_REORDER_BUFFER_READ - PostgreSQL 18.6 · src/backend/utils/activity/wait_event_names.txt:239 —
REORDER_BUFFER_READ
关联控制项与信号
- GUC: 无直接关联项。
- 指标: [metric:waiting_sessions] · [metric:wait_event_share] · [metric:io_read_time] · [metric:io_write_time]
6.50 - IO: ReorderBufferWrite
ReorderBufferWrite
版本PG 13-18
证据2 个源码位置
官方描述译文
等待在 reorder buffer 管理期间写入数据。
| PG 13 | PG 14 | PG 15 | PG 16 | PG 17 | PG 18 |
|---|---|---|---|---|---|
| ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
触发机制
WAIT_EVENT_REORDER_BUFFER_WRITE 位于 src/backend/replication/logical/reorderbuffer.c:4265,是经 grep 核验的报告路径。公共身份/资源映射位于 src/backend/utils/activity/wait_event_names.txt:240。探针覆盖的操作是:等待在 reorder buffer 管理期间写入数据。PostgreSQL 在 ReorderBufferWrite 所表示的文件或异步 I/O 操作周围报告此事件;内核、存储栈或 I/O worker 完成该步骤后,后端继续执行。
正常还是麻烦?
- 正常: 当负载本来就应以当前速率执行对应的读取、写入、同步、分配或完成操作时,这项等待正常。
- 需要调查: 若它持续存在并伴随前台延迟、大量并发等待者、存储长尾延迟、限速或错误,应当调查。
诊断 SQL
处置建议
- 确认当前负载阶段本来就应访问这类文件。
- 在可用版本上关联 pg_stat_io 与具体设备延迟。
- 先修复访问路径、突发形状或受影响存储层,再调整无关的内存参数。
源码证据
- PostgreSQL 18.6 · src/backend/replication/logical/reorderbuffer.c:4265 —
WAIT_EVENT_REORDER_BUFFER_WRITE - PostgreSQL 18.6 · src/backend/utils/activity/wait_event_names.txt:240 —
REORDER_BUFFER_WRITE
关联控制项与信号
- GUC: 无直接关联项。
- 指标: [metric:waiting_sessions] · [metric:wait_event_share] · [metric:io_read_time] · [metric:io_write_time]
6.51 - IO: ReorderLogicalMappingRead
ReorderLogicalMappingRead
版本PG 13-18
证据2 个源码位置
官方描述译文
等待在 reorder buffer 管理期间读取逻辑映射。
| PG 13 | PG 14 | PG 15 | PG 16 | PG 17 | PG 18 |
|---|---|---|---|---|---|
| ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
触发机制
WAIT_EVENT_REORDER_LOGICAL_MAPPING_READ 位于 src/backend/replication/logical/reorderbuffer.c:5383,是经 grep 核验的报告路径。公共身份/资源映射位于 src/backend/utils/activity/wait_event_names.txt:241。探针覆盖的操作是:等待在 reorder buffer 管理期间读取逻辑映射。PostgreSQL 在 ReorderLogicalMappingRead 所表示的文件或异步 I/O 操作周围报告此事件;内核、存储栈或 I/O worker 完成该步骤后,后端继续执行。
正常还是麻烦?
- 正常: 当负载本来就应以当前速率执行对应的读取、写入、同步、分配或完成操作时,这项等待正常。
- 需要调查: 若它持续存在并伴随前台延迟、大量并发等待者、存储长尾延迟、限速或错误,应当调查。
诊断 SQL
处置建议
- 确认当前负载阶段本来就应访问这类文件。
- 在可用版本上关联 pg_stat_io 与具体设备延迟。
- 先修复访问路径、突发形状或受影响存储层,再调整无关的内存参数。
源码证据
- PostgreSQL 18.6 · src/backend/replication/logical/reorderbuffer.c:5383 —
WAIT_EVENT_REORDER_LOGICAL_MAPPING_READ - PostgreSQL 18.6 · src/backend/utils/activity/wait_event_names.txt:241 —
REORDER_LOGICAL_MAPPING_READ
关联控制项与信号
- GUC: 无直接关联项。
- 指标: [metric:waiting_sessions] · [metric:wait_event_share] · [metric:io_read_time] · [metric:io_write_time]
6.52 - IO: ReplicationSlotRead
ReplicationSlotRead
版本PG 13-18
证据2 个源码位置
官方描述译文
等待从复制槽控制文件中读取数据。
| PG 13 | PG 14 | PG 15 | PG 16 | PG 17 | PG 18 |
|---|---|---|---|---|---|
| ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
触发机制
WAIT_EVENT_REPLICATION_SLOT_READ 位于 src/backend/replication/slot.c:2540,是经 grep 核验的报告路径。公共身份/资源映射位于 src/backend/utils/activity/wait_event_names.txt:242。探针覆盖的操作是:等待从复制槽控制文件中读取数据。PostgreSQL 在 ReplicationSlotRead 所表示的文件或异步 I/O 操作周围报告此事件;内核、存储栈或 I/O worker 完成该步骤后,后端继续执行。
正常还是麻烦?
- 正常: 当负载本来就应以当前速率执行对应的读取、写入、同步、分配或完成操作时,这项等待正常。
- 需要调查: 若它持续存在并伴随前台延迟、大量并发等待者、存储长尾延迟、限速或错误,应当调查。
诊断 SQL
处置建议
- 确认当前负载阶段本来就应访问这类文件。
- 在可用版本上关联 pg_stat_io 与具体设备延迟。
- 先修复访问路径、突发形状或受影响存储层,再调整无关的内存参数。
源码证据
- PostgreSQL 18.6 · src/backend/replication/slot.c:2540 —
WAIT_EVENT_REPLICATION_SLOT_READ - PostgreSQL 18.6 · src/backend/utils/activity/wait_event_names.txt:242 —
REPLICATION_SLOT_READ
关联控制项与信号
- GUC: 无直接关联项。
- 指标: [metric:waiting_sessions] · [metric:wait_event_share] · [metric:io_read_time] · [metric:io_write_time]
6.53 - IO: ReplicationSlotRestoreSync
ReplicationSlotRestoreSync
版本PG 13-18
证据2 个源码位置
官方描述译文
等待在将复制槽恢复到内存的过程中,使其控制文件到达持久化存储。
| PG 13 | PG 14 | PG 15 | PG 16 | PG 17 | PG 18 |
|---|---|---|---|---|---|
| ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
触发机制
WAIT_EVENT_REPLICATION_SLOT_RESTORE_SYNC 位于 src/backend/replication/slot.c:2526,是经 grep 核验的报告路径。公共身份/资源映射位于 src/backend/utils/activity/wait_event_names.txt:243。探针覆盖的操作是:等待在将复制槽恢复到内存的过程中,使其控制文件到达持久化存储。PostgreSQL 在 ReplicationSlotRestoreSync 所表示的文件或异步 I/O 操作周围报告此事件;内核、存储栈或 I/O worker 完成该步骤后,后端继续执行。
正常还是麻烦?
- 正常: 当负载本来就应以当前速率执行对应的读取、写入、同步、分配或完成操作时,这项等待正常。
- 需要调查: 若它持续存在并伴随前台延迟、大量并发等待者、存储长尾延迟、限速或错误,应当调查。
诊断 SQL
处置建议
- 确认当前负载阶段本来就应访问这类文件。
- 在可用版本上关联 pg_stat_io 与具体设备延迟。
- 先修复访问路径、突发形状或受影响存储层,再调整无关的内存参数。
源码证据
- PostgreSQL 18.6 · src/backend/replication/slot.c:2526 —
WAIT_EVENT_REPLICATION_SLOT_RESTORE_SYNC - PostgreSQL 18.6 · src/backend/utils/activity/wait_event_names.txt:243 —
REPLICATION_SLOT_RESTORE_SYNC
关联控制项与信号
- GUC: 无直接关联项。
- 指标: [metric:waiting_sessions] · [metric:wait_event_share] · [metric:io_read_time] · [metric:io_write_time]
6.54 - IO: ReplicationSlotSync
ReplicationSlotSync
版本PG 13-18
证据2 个源码位置
官方描述译文
等待复制槽控制文件到达持久化存储。
| PG 13 | PG 14 | PG 15 | PG 16 | PG 17 | PG 18 |
|---|---|---|---|---|---|
| ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
触发机制
WAIT_EVENT_REPLICATION_SLOT_SYNC 位于 src/backend/replication/slot.c:2405,是经 grep 核验的报告路径。公共身份/资源映射位于 src/backend/utils/activity/wait_event_names.txt:244。探针覆盖的操作是:等待复制槽控制文件到达持久化存储。PostgreSQL 在 ReplicationSlotSync 所表示的文件或异步 I/O 操作周围报告此事件;内核、存储栈或 I/O worker 完成该步骤后,后端继续执行。
正常还是麻烦?
- 正常: 当负载本来就应以当前速率执行对应的读取、写入、同步、分配或完成操作时,这项等待正常。
- 需要调查: 若它持续存在并伴随前台延迟、大量并发等待者、存储长尾延迟、限速或错误,应当调查。
诊断 SQL
处置建议
- 确认当前负载阶段本来就应访问这类文件。
- 在可用版本上关联 pg_stat_io 与具体设备延迟。
- 先修复访问路径、突发形状或受影响存储层,再调整无关的内存参数。
源码证据
- PostgreSQL 18.6 · src/backend/replication/slot.c:2405 —
WAIT_EVENT_REPLICATION_SLOT_SYNC - PostgreSQL 18.6 · src/backend/utils/activity/wait_event_names.txt:244 —
REPLICATION_SLOT_SYNC
关联控制项与信号
- GUC: 无直接关联项。
- 指标: [metric:waiting_sessions] · [metric:wait_event_share] · [metric:io_read_time] · [metric:io_write_time]
6.55 - IO: ReplicationSlotWrite
ReplicationSlotWrite
版本PG 13-18
证据2 个源码位置
官方描述译文
等待向复制槽控制文件写入数据。
| PG 13 | PG 14 | PG 15 | PG 16 | PG 17 | PG 18 |
|---|---|---|---|---|---|
| ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
触发机制
WAIT_EVENT_REPLICATION_SLOT_WRITE 位于 src/backend/replication/slot.c:2384,是经 grep 核验的报告路径。公共身份/资源映射位于 src/backend/utils/activity/wait_event_names.txt:245。探针覆盖的操作是:等待向复制槽控制文件写入数据。PostgreSQL 在 ReplicationSlotWrite 所表示的文件或异步 I/O 操作周围报告此事件;内核、存储栈或 I/O worker 完成该步骤后,后端继续执行。
正常还是麻烦?
- 正常: 当负载本来就应以当前速率执行对应的读取、写入、同步、分配或完成操作时,这项等待正常。
- 需要调查: 若它持续存在并伴随前台延迟、大量并发等待者、存储长尾延迟、限速或错误,应当调查。
诊断 SQL
处置建议
- 确认当前负载阶段本来就应访问这类文件。
- 在可用版本上关联 pg_stat_io 与具体设备延迟。
- 先修复访问路径、突发形状或受影响存储层,再调整无关的内存参数。
源码证据
- PostgreSQL 18.6 · src/backend/replication/slot.c:2384 —
WAIT_EVENT_REPLICATION_SLOT_WRITE - PostgreSQL 18.6 · src/backend/utils/activity/wait_event_names.txt:245 —
REPLICATION_SLOT_WRITE
关联控制项与信号
- GUC: 无直接关联项。
- 指标: [metric:waiting_sessions] · [metric:wait_event_share] · [metric:io_read_time] · [metric:io_write_time]
6.56 - IO: SlruFlushSync
SlruFlushSync
版本PG 17-18
证据4 个源码位置
官方描述译文
等待检查点或数据库关闭期间的 SLRU 数据到达持久化存储。
| PG 13 | PG 14 | PG 15 | PG 16 | PG 17 | PG 18 |
|---|---|---|---|---|---|
| — | — | — | — | ✓ | ✓ |
历史名称:IO/SLRUFlushSync (PG 13-16)
触发机制
WAIT_EVENT_SLRU_FLUSH_SYNC 位于 src/backend/access/transam/slru.c:1606,是经 grep 核验的报告路径。公共身份/资源映射位于 src/backend/utils/activity/wait_event.c:679。探针覆盖的操作是:等待检查点或数据库关闭期间的 SLRU 数据到达持久化存储。PostgreSQL 在 SlruFlushSync 所表示的文件或异步 I/O 操作周围报告此事件;内核、存储栈或 I/O worker 完成该步骤后,后端继续执行。
正常还是麻烦?
- 正常: 当负载本来就应以当前速率执行对应的读取、写入、同步、分配或完成操作时,这项等待正常。
- 需要调查: 若它持续存在并伴随前台延迟、大量并发等待者、存储长尾延迟、限速或错误,应当调查。
诊断 SQL
处置建议
- 确认当前负载阶段本来就应访问这类文件。
- 在可用版本上关联 pg_stat_io 与具体设备延迟。
- 先修复访问路径、突发形状或受影响存储层,再调整无关的内存参数。
源码证据
- PostgreSQL 16.15 · src/backend/access/transam/slru.c:1606 —
WAIT_EVENT_SLRU_FLUSH_SYNC - PostgreSQL 16.15 · src/backend/utils/activity/wait_event.c:679 —
SLRUFlushSync - PostgreSQL 18.6 · src/backend/access/transam/slru.c:1843 —
WAIT_EVENT_SLRU_FLUSH_SYNC - PostgreSQL 18.6 · src/backend/utils/activity/wait_event_names.txt:246 —
SLRU_FLUSH_SYNC
关联控制项与信号
- GUC: 无直接关联项。
- 指标: [metric:waiting_sessions] · [metric:wait_event_share] · [metric:io_read_time] · [metric:io_write_time]
6.57 - IO: SlruRead
SlruRead
版本PG 17-18
证据4 个源码位置
官方描述译文
等待读取 SLRU 页面。
| PG 13 | PG 14 | PG 15 | PG 16 | PG 17 | PG 18 |
|---|---|---|---|---|---|
| — | — | — | — | ✓ | ✓ |
历史名称:IO/SLRURead (PG 13-16)
触发机制
WAIT_EVENT_SLRU_READ 位于 src/backend/access/transam/slru.c:721,是经 grep 核验的报告路径。公共身份/资源映射位于 src/backend/utils/activity/wait_event.c:682。探针覆盖的操作是:等待读取 SLRU 页面。PostgreSQL 在 SlruRead 所表示的文件或异步 I/O 操作周围报告此事件;内核、存储栈或 I/O worker 完成该步骤后,后端继续执行。
正常还是麻烦?
- 正常: 当负载本来就应以当前速率执行对应的读取、写入、同步、分配或完成操作时,这项等待正常。
- 需要调查: 若它持续存在并伴随前台延迟、大量并发等待者、存储长尾延迟、限速或错误,应当调查。
诊断 SQL
处置建议
- 确认当前负载阶段本来就应访问这类文件。
- 在可用版本上关联 pg_stat_io 与具体设备延迟。
- 先修复访问路径、突发形状或受影响存储层,再调整无关的内存参数。
源码证据
- PostgreSQL 16.15 · src/backend/access/transam/slru.c:721 —
WAIT_EVENT_SLRU_READ - PostgreSQL 16.15 · src/backend/utils/activity/wait_event.c:682 —
SLRURead - PostgreSQL 18.6 · src/backend/access/transam/slru.c:840 —
WAIT_EVENT_SLRU_READ - PostgreSQL 18.6 · src/backend/utils/activity/wait_event_names.txt:247 —
SLRU_READ
关联控制项与信号
- GUC: 无直接关联项。
- 指标: [metric:waiting_sessions] · [metric:wait_event_share] · [metric:io_read_time] · [metric:io_write_time]
6.58 - IO: SlruSync
SlruSync
版本PG 17-18
证据4 个源码位置
官方描述译文
等待页面写入后的 SLRU 数据到达持久化存储。
| PG 13 | PG 14 | PG 15 | PG 16 | PG 17 | PG 18 |
|---|---|---|---|---|---|
| — | — | — | — | ✓ | ✓ |
历史名称:IO/SLRUSync (PG 13-16)
触发机制
WAIT_EVENT_SLRU_SYNC 位于 src/backend/access/transam/slru.c:900,是经 grep 核验的报告路径。公共身份/资源映射位于 src/backend/utils/activity/wait_event.c:685。探针覆盖的操作是:等待页面写入后的 SLRU 数据到达持久化存储。PostgreSQL 在 SlruSync 所表示的文件或异步 I/O 操作周围报告此事件;内核、存储栈或 I/O worker 完成该步骤后,后端继续执行。
正常还是麻烦?
- 正常: 当负载本来就应以当前速率执行对应的读取、写入、同步、分配或完成操作时,这项等待正常。
- 需要调查: 若它持续存在并伴随前台延迟、大量并发等待者、存储长尾延迟、限速或错误,应当调查。
诊断 SQL
处置建议
- 确认当前负载阶段本来就应访问这类文件。
- 在可用版本上关联 pg_stat_io 与具体设备延迟。
- 先修复访问路径、突发形状或受影响存储层,再调整无关的内存参数。
源码证据
- PostgreSQL 16.15 · src/backend/access/transam/slru.c:900 —
WAIT_EVENT_SLRU_SYNC - PostgreSQL 16.15 · src/backend/utils/activity/wait_event.c:685 —
SLRUSync - PostgreSQL 18.6 · src/backend/access/transam/slru.c:1016 —
WAIT_EVENT_SLRU_SYNC - PostgreSQL 18.6 · src/backend/utils/activity/wait_event_names.txt:248 —
SLRU_SYNC
关联控制项与信号
- GUC: 无直接关联项。
- 指标: [metric:waiting_sessions] · [metric:wait_event_share] · [metric:io_read_time] · [metric:io_write_time]
6.59 - IO: SlruWrite
SlruWrite
版本PG 17-18
证据4 个源码位置
官方描述译文
等待写入 SLRU 页面。
| PG 13 | PG 14 | PG 15 | PG 16 | PG 17 | PG 18 |
|---|---|---|---|---|---|
| — | — | — | — | ✓ | ✓ |
历史名称:IO/SLRUWrite (PG 13-16)
触发机制
WAIT_EVENT_SLRU_WRITE 位于 src/backend/access/transam/slru.c:876,是经 grep 核验的报告路径。公共身份/资源映射位于 src/backend/utils/activity/wait_event.c:688。探针覆盖的操作是:等待写入 SLRU 页面。PostgreSQL 在 SlruWrite 所表示的文件或异步 I/O 操作周围报告此事件;内核、存储栈或 I/O worker 完成该步骤后,后端继续执行。
正常还是麻烦?
- 正常: 当负载本来就应以当前速率执行对应的读取、写入、同步、分配或完成操作时,这项等待正常。
- 需要调查: 若它持续存在并伴随前台延迟、大量并发等待者、存储长尾延迟、限速或错误,应当调查。
诊断 SQL
处置建议
- 确认当前负载阶段本来就应访问这类文件。
- 在可用版本上关联 pg_stat_io 与具体设备延迟。
- 先修复访问路径、突发形状或受影响存储层,再调整无关的内存参数。
源码证据
- PostgreSQL 16.15 · src/backend/access/transam/slru.c:876 —
WAIT_EVENT_SLRU_WRITE - PostgreSQL 16.15 · src/backend/utils/activity/wait_event.c:688 —
SLRUWrite - PostgreSQL 18.6 · src/backend/access/transam/slru.c:992 —
WAIT_EVENT_SLRU_WRITE - PostgreSQL 18.6 · src/backend/utils/activity/wait_event_names.txt:249 —
SLRU_WRITE
关联控制项与信号
- GUC: 无直接关联项。
- 指标: [metric:waiting_sessions] · [metric:wait_event_share] · [metric:io_read_time] · [metric:io_write_time]
6.60 - IO: SnapbuildRead
SnapbuildRead
版本PG 13-18
证据2 个源码位置
官方描述译文
等待读取序列化的历史系统目录 snapshot。
| PG 13 | PG 14 | PG 15 | PG 16 | PG 17 | PG 18 |
|---|---|---|---|---|---|
| ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
触发机制
WAIT_EVENT_SNAPBUILD_READ 位于 src/backend/replication/logical/snapbuild.c:1937,是经 grep 核验的报告路径。公共身份/资源映射位于 src/backend/utils/activity/wait_event_names.txt:250。探针覆盖的操作是:等待读取序列化的历史系统目录 snapshot。PostgreSQL 在 SnapbuildRead 所表示的文件或异步 I/O 操作周围报告此事件;内核、存储栈或 I/O worker 完成该步骤后,后端继续执行。
正常还是麻烦?
- 正常: 当负载本来就应以当前速率执行对应的读取、写入、同步、分配或完成操作时,这项等待正常。
- 需要调查: 若它持续存在并伴随前台延迟、大量并发等待者、存储长尾延迟、限速或错误,应当调查。
诊断 SQL
处置建议
- 确认当前负载阶段本来就应访问这类文件。
- 在可用版本上关联 pg_stat_io 与具体设备延迟。
- 先修复访问路径、突发形状或受影响存储层,再调整无关的内存参数。
源码证据
- PostgreSQL 18.6 · src/backend/replication/logical/snapbuild.c:1937 —
WAIT_EVENT_SNAPBUILD_READ - PostgreSQL 18.6 · src/backend/utils/activity/wait_event_names.txt:250 —
SNAPBUILD_READ
关联控制项与信号
- GUC: 无直接关联项。
- 指标: [metric:waiting_sessions] · [metric:wait_event_share] · [metric:io_read_time] · [metric:io_write_time]
6.61 - IO: SnapbuildSync
SnapbuildSync
版本PG 13-18
证据2 个源码位置
官方描述译文
等待序列化的历史系统目录 snapshot 到达持久化存储。
| PG 13 | PG 14 | PG 15 | PG 16 | PG 17 | PG 18 |
|---|---|---|---|---|---|
| ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
触发机制
WAIT_EVENT_SNAPBUILD_SYNC 位于 src/backend/replication/logical/snapbuild.c:1680,是经 grep 核验的报告路径。公共身份/资源映射位于 src/backend/utils/activity/wait_event_names.txt:251。探针覆盖的操作是:等待序列化的历史系统目录 snapshot 到达持久化存储。PostgreSQL 在 SnapbuildSync 所表示的文件或异步 I/O 操作周围报告此事件;内核、存储栈或 I/O worker 完成该步骤后,后端继续执行。
正常还是麻烦?
- 正常: 当负载本来就应以当前速率执行对应的读取、写入、同步、分配或完成操作时,这项等待正常。
- 需要调查: 若它持续存在并伴随前台延迟、大量并发等待者、存储长尾延迟、限速或错误,应当调查。
诊断 SQL
处置建议
- 确认当前负载阶段本来就应访问这类文件。
- 在可用版本上关联 pg_stat_io 与具体设备延迟。
- 先修复访问路径、突发形状或受影响存储层,再调整无关的内存参数。
源码证据
- PostgreSQL 18.6 · src/backend/replication/logical/snapbuild.c:1680 —
WAIT_EVENT_SNAPBUILD_SYNC - PostgreSQL 18.6 · src/backend/utils/activity/wait_event_names.txt:251 —
SNAPBUILD_SYNC
关联控制项与信号
- GUC: 无直接关联项。
- 指标: [metric:waiting_sessions] · [metric:wait_event_share] · [metric:io_read_time] · [metric:io_write_time]
6.62 - IO: SnapbuildWrite
SnapbuildWrite
版本PG 13-18
证据2 个源码位置
官方描述译文
等待写入序列化的历史系统目录 snapshot。
| PG 13 | PG 14 | PG 15 | PG 16 | PG 17 | PG 18 |
|---|---|---|---|---|---|
| ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
触发机制
WAIT_EVENT_SNAPBUILD_WRITE 位于 src/backend/replication/logical/snapbuild.c:1654,是经 grep 核验的报告路径。公共身份/资源映射位于 src/backend/utils/activity/wait_event_names.txt:252。探针覆盖的操作是:等待写入序列化的历史系统目录 snapshot。PostgreSQL 在 SnapbuildWrite 所表示的文件或异步 I/O 操作周围报告此事件;内核、存储栈或 I/O worker 完成该步骤后,后端继续执行。
正常还是麻烦?
- 正常: 当负载本来就应以当前速率执行对应的读取、写入、同步、分配或完成操作时,这项等待正常。
- 需要调查: 若它持续存在并伴随前台延迟、大量并发等待者、存储长尾延迟、限速或错误,应当调查。
诊断 SQL
处置建议
- 确认当前负载阶段本来就应访问这类文件。
- 在可用版本上关联 pg_stat_io 与具体设备延迟。
- 先修复访问路径、突发形状或受影响存储层,再调整无关的内存参数。
源码证据
- PostgreSQL 18.6 · src/backend/replication/logical/snapbuild.c:1654 —
WAIT_EVENT_SNAPBUILD_WRITE - PostgreSQL 18.6 · src/backend/utils/activity/wait_event_names.txt:252 —
SNAPBUILD_WRITE
关联控制项与信号
- GUC: 无直接关联项。
- 指标: [metric:waiting_sessions] · [metric:wait_event_share] · [metric:io_read_time] · [metric:io_write_time]
6.63 - IO: TimelineHistoryFileSync
TimelineHistoryFileSync
版本PG 13-18
证据2 个源码位置
官方描述译文
等待通过流复制接收的时间线历史文件到达持久化存储。
| PG 13 | PG 14 | PG 15 | PG 16 | PG 17 | PG 18 |
|---|---|---|---|---|---|
| ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
触发机制
WAIT_EVENT_TIMELINE_HISTORY_FILE_SYNC 位于 src/backend/access/transam/timeline.c:502,是经 grep 核验的报告路径。公共身份/资源映射位于 src/backend/utils/activity/wait_event_names.txt:253。探针覆盖的操作是:等待通过流复制接收的时间线历史文件到达持久化存储。PostgreSQL 在 TimelineHistoryFileSync 所表示的文件或异步 I/O 操作周围报告此事件;内核、存储栈或 I/O worker 完成该步骤后,后端继续执行。
正常还是麻烦?
- 正常: 当负载本来就应以当前速率执行对应的读取、写入、同步、分配或完成操作时,这项等待正常。
- 需要调查: 若它持续存在并伴随前台延迟、大量并发等待者、存储长尾延迟、限速或错误,应当调查。
诊断 SQL
处置建议
- 确认当前负载阶段本来就应访问这类文件。
- 在可用版本上关联 pg_stat_io 与具体设备延迟。
- 先修复访问路径、突发形状或受影响存储层,再调整无关的内存参数。
源码证据
- PostgreSQL 18.6 · src/backend/access/transam/timeline.c:502 —
WAIT_EVENT_TIMELINE_HISTORY_FILE_SYNC - PostgreSQL 18.6 · src/backend/utils/activity/wait_event_names.txt:253 —
TIMELINE_HISTORY_FILE_SYNC
关联控制项与信号
- GUC: 无直接关联项。
- 指标: [metric:waiting_sessions] · [metric:wait_event_share] · [metric:io_read_time] · [metric:io_write_time]
6.64 - IO: TimelineHistoryFileWrite
TimelineHistoryFileWrite
版本PG 13-18
证据2 个源码位置
官方描述译文
等待写入通过流复制接收的时间线历史文件。
| PG 13 | PG 14 | PG 15 | PG 16 | PG 17 | PG 18 |
|---|---|---|---|---|---|
| ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
触发机制
WAIT_EVENT_TIMELINE_HISTORY_FILE_WRITE 位于 src/backend/access/transam/timeline.c:484,是经 grep 核验的报告路径。公共身份/资源映射位于 src/backend/utils/activity/wait_event_names.txt:254。探针覆盖的操作是:等待写入通过流复制接收的时间线历史文件。PostgreSQL 在 TimelineHistoryFileWrite 所表示的文件或异步 I/O 操作周围报告此事件;内核、存储栈或 I/O worker 完成该步骤后,后端继续执行。
正常还是麻烦?
- 正常: 当负载本来就应以当前速率执行对应的读取、写入、同步、分配或完成操作时,这项等待正常。
- 需要调查: 若它持续存在并伴随前台延迟、大量并发等待者、存储长尾延迟、限速或错误,应当调查。
诊断 SQL
处置建议
- 确认当前负载阶段本来就应访问这类文件。
- 在可用版本上关联 pg_stat_io 与具体设备延迟。
- 先修复访问路径、突发形状或受影响存储层,再调整无关的内存参数。
源码证据
- PostgreSQL 18.6 · src/backend/access/transam/timeline.c:484 —
WAIT_EVENT_TIMELINE_HISTORY_FILE_WRITE - PostgreSQL 18.6 · src/backend/utils/activity/wait_event_names.txt:254 —
TIMELINE_HISTORY_FILE_WRITE
关联控制项与信号
- GUC: 无直接关联项。
- 指标: [metric:waiting_sessions] · [metric:wait_event_share] · [metric:io_read_time] · [metric:io_write_time]
6.65 - IO: TimelineHistoryRead
TimelineHistoryRead
版本PG 13-18
证据2 个源码位置
官方描述译文
等待读取时间线历史文件。
| PG 13 | PG 14 | PG 15 | PG 16 | PG 17 | PG 18 |
|---|---|---|---|---|---|
| ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
触发机制
WAIT_EVENT_TIMELINE_HISTORY_READ 位于 src/backend/access/transam/timeline.c:135,是经 grep 核验的报告路径。公共身份/资源映射位于 src/backend/utils/activity/wait_event_names.txt:255。探针覆盖的操作是:等待读取时间线历史文件。PostgreSQL 在 TimelineHistoryRead 所表示的文件或异步 I/O 操作周围报告此事件;内核、存储栈或 I/O worker 完成该步骤后,后端继续执行。
正常还是麻烦?
- 正常: 当负载本来就应以当前速率执行对应的读取、写入、同步、分配或完成操作时,这项等待正常。
- 需要调查: 若它持续存在并伴随前台延迟、大量并发等待者、存储长尾延迟、限速或错误,应当调查。
诊断 SQL
处置建议
- 确认当前负载阶段本来就应访问这类文件。
- 在可用版本上关联 pg_stat_io 与具体设备延迟。
- 先修复访问路径、突发形状或受影响存储层,再调整无关的内存参数。
源码证据
- PostgreSQL 18.6 · src/backend/access/transam/timeline.c:135 —
WAIT_EVENT_TIMELINE_HISTORY_READ - PostgreSQL 18.6 · src/backend/utils/activity/wait_event_names.txt:255 —
TIMELINE_HISTORY_READ
关联控制项与信号
- GUC: 无直接关联项。
- 指标: [metric:waiting_sessions] · [metric:wait_event_share] · [metric:io_read_time] · [metric:io_write_time]
6.66 - IO: TimelineHistorySync
TimelineHistorySync
版本PG 13-18
证据2 个源码位置
官方描述译文
等待新建的时间线历史文件到达持久化存储。
| PG 13 | PG 14 | PG 15 | PG 16 | PG 17 | PG 18 |
|---|---|---|---|---|---|
| ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
触发机制
WAIT_EVENT_TIMELINE_HISTORY_SYNC 位于 src/backend/access/transam/timeline.c:428,是经 grep 核验的报告路径。公共身份/资源映射位于 src/backend/utils/activity/wait_event_names.txt:256。探针覆盖的操作是:等待新建的时间线历史文件到达持久化存储。PostgreSQL 在 TimelineHistorySync 所表示的文件或异步 I/O 操作周围报告此事件;内核、存储栈或 I/O worker 完成该步骤后,后端继续执行。
正常还是麻烦?
- 正常: 当负载本来就应以当前速率执行对应的读取、写入、同步、分配或完成操作时,这项等待正常。
- 需要调查: 若它持续存在并伴随前台延迟、大量并发等待者、存储长尾延迟、限速或错误,应当调查。
诊断 SQL
处置建议
- 确认当前负载阶段本来就应访问这类文件。
- 在可用版本上关联 pg_stat_io 与具体设备延迟。
- 先修复访问路径、突发形状或受影响存储层,再调整无关的内存参数。
源码证据
- PostgreSQL 18.6 · src/backend/access/transam/timeline.c:428 —
WAIT_EVENT_TIMELINE_HISTORY_SYNC - PostgreSQL 18.6 · src/backend/utils/activity/wait_event_names.txt:256 —
TIMELINE_HISTORY_SYNC
关联控制项与信号
- GUC: 无直接关联项。
- 指标: [metric:waiting_sessions] · [metric:wait_event_share] · [metric:io_read_time] · [metric:io_write_time]
6.67 - IO: TimelineHistoryWrite
TimelineHistoryWrite
版本PG 13-18
证据2 个源码位置
官方描述译文
等待写入新建的时间线历史文件。
| PG 13 | PG 14 | PG 15 | PG 16 | PG 17 | PG 18 |
|---|---|---|---|---|---|
| ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
触发机制
WAIT_EVENT_TIMELINE_HISTORY_WRITE 位于 src/backend/access/transam/timeline.c:366,是经 grep 核验的报告路径。公共身份/资源映射位于 src/backend/utils/activity/wait_event_names.txt:257。探针覆盖的操作是:等待写入新建的时间线历史文件。PostgreSQL 在 TimelineHistoryWrite 所表示的文件或异步 I/O 操作周围报告此事件;内核、存储栈或 I/O worker 完成该步骤后,后端继续执行。
正常还是麻烦?
- 正常: 当负载本来就应以当前速率执行对应的读取、写入、同步、分配或完成操作时,这项等待正常。
- 需要调查: 若它持续存在并伴随前台延迟、大量并发等待者、存储长尾延迟、限速或错误,应当调查。
诊断 SQL
处置建议
- 确认当前负载阶段本来就应访问这类文件。
- 在可用版本上关联 pg_stat_io 与具体设备延迟。
- 先修复访问路径、突发形状或受影响存储层,再调整无关的内存参数。
源码证据
- PostgreSQL 18.6 · src/backend/access/transam/timeline.c:366 —
WAIT_EVENT_TIMELINE_HISTORY_WRITE - PostgreSQL 18.6 · src/backend/utils/activity/wait_event_names.txt:257 —
TIMELINE_HISTORY_WRITE
关联控制项与信号
- GUC: 无直接关联项。
- 指标: [metric:waiting_sessions] · [metric:wait_event_share] · [metric:io_read_time] · [metric:io_write_time]
6.68 - IO: TwophaseFileRead
TwophaseFileRead
版本PG 13-18
证据2 个源码位置
官方描述译文
等待读取两阶段状态文件。
| PG 13 | PG 14 | PG 15 | PG 16 | PG 17 | PG 18 |
|---|---|---|---|---|---|
| ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
触发机制
WAIT_EVENT_TWOPHASE_FILE_READ 位于 src/backend/access/transam/twophase.c:1347,是经 grep 核验的报告路径。公共身份/资源映射位于 src/backend/utils/activity/wait_event_names.txt:258。探针覆盖的操作是:等待读取两阶段状态文件。PostgreSQL 在 TwophaseFileRead 所表示的文件或异步 I/O 操作周围报告此事件;内核、存储栈或 I/O worker 完成该步骤后,后端继续执行。
正常还是麻烦?
- 正常: 当负载本来就应以当前速率执行对应的读取、写入、同步、分配或完成操作时,这项等待正常。
- 需要调查: 若它持续存在并伴随前台延迟、大量并发等待者、存储长尾延迟、限速或错误,应当调查。
诊断 SQL
处置建议
- 确认当前负载阶段本来就应访问这类文件。
- 在可用版本上关联 pg_stat_io 与具体设备延迟。
- 先修复访问路径、突发形状或受影响存储层,再调整无关的内存参数。
源码证据
- PostgreSQL 18.6 · src/backend/access/transam/twophase.c:1347 —
WAIT_EVENT_TWOPHASE_FILE_READ - PostgreSQL 18.6 · src/backend/utils/activity/wait_event_names.txt:258 —
TWOPHASE_FILE_READ
关联控制项与信号
- GUC: 无直接关联项。
- 指标: [metric:waiting_sessions] · [metric:wait_event_share] · [metric:io_read_time] · [metric:io_write_time]
6.69 - IO: TwophaseFileSync
TwophaseFileSync
版本PG 13-18
证据2 个源码位置
官方描述译文
等待两阶段状态文件到达持久化存储。
| PG 13 | PG 14 | PG 15 | PG 16 | PG 17 | PG 18 |
|---|---|---|---|---|---|
| ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
触发机制
WAIT_EVENT_TWOPHASE_FILE_SYNC 位于 src/backend/access/transam/twophase.c:1774,是经 grep 核验的报告路径。公共身份/资源映射位于 src/backend/utils/activity/wait_event_names.txt:259。探针覆盖的操作是:等待两阶段状态文件到达持久化存储。PostgreSQL 在 TwophaseFileSync 所表示的文件或异步 I/O 操作周围报告此事件;内核、存储栈或 I/O worker 完成该步骤后,后端继续执行。
正常还是麻烦?
- 正常: 当负载本来就应以当前速率执行对应的读取、写入、同步、分配或完成操作时,这项等待正常。
- 需要调查: 若它持续存在并伴随前台延迟、大量并发等待者、存储长尾延迟、限速或错误,应当调查。
诊断 SQL
处置建议
- 确认当前负载阶段本来就应访问这类文件。
- 在可用版本上关联 pg_stat_io 与具体设备延迟。
- 先修复访问路径、突发形状或受影响存储层,再调整无关的内存参数。
源码证据
- PostgreSQL 18.6 · src/backend/access/transam/twophase.c:1774 —
WAIT_EVENT_TWOPHASE_FILE_SYNC - PostgreSQL 18.6 · src/backend/utils/activity/wait_event_names.txt:259 —
TWOPHASE_FILE_SYNC
关联控制项与信号
- GUC: 无直接关联项。
- 指标: [metric:waiting_sessions] · [metric:wait_event_share] · [metric:io_read_time] · [metric:io_write_time]
6.70 - IO: TwophaseFileWrite
TwophaseFileWrite
版本PG 13-18
证据2 个源码位置
官方描述译文
等待写入两阶段状态文件。
| PG 13 | PG 14 | PG 15 | PG 16 | PG 17 | PG 18 |
|---|---|---|---|---|---|
| ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
触发机制
WAIT_EVENT_TWOPHASE_FILE_WRITE 位于 src/backend/access/transam/twophase.c:1749,是经 grep 核验的报告路径。公共身份/资源映射位于 src/backend/utils/activity/wait_event_names.txt:260。探针覆盖的操作是:等待写入两阶段状态文件。PostgreSQL 在 TwophaseFileWrite 所表示的文件或异步 I/O 操作周围报告此事件;内核、存储栈或 I/O worker 完成该步骤后,后端继续执行。
正常还是麻烦?
- 正常: 当负载本来就应以当前速率执行对应的读取、写入、同步、分配或完成操作时,这项等待正常。
- 需要调查: 若它持续存在并伴随前台延迟、大量并发等待者、存储长尾延迟、限速或错误,应当调查。
诊断 SQL
处置建议
- 确认当前负载阶段本来就应访问这类文件。
- 在可用版本上关联 pg_stat_io 与具体设备延迟。
- 先修复访问路径、突发形状或受影响存储层,再调整无关的内存参数。
源码证据
- PostgreSQL 18.6 · src/backend/access/transam/twophase.c:1749 —
WAIT_EVENT_TWOPHASE_FILE_WRITE - PostgreSQL 18.6 · src/backend/utils/activity/wait_event_names.txt:260 —
TWOPHASE_FILE_WRITE
关联控制项与信号
- GUC: 无直接关联项。
- 指标: [metric:waiting_sessions] · [metric:wait_event_share] · [metric:io_read_time] · [metric:io_write_time]
6.71 - IO: VersionFileSync
VersionFileSync
版本PG 15-18
证据2 个源码位置
官方描述译文
等待创建数据库时的版本文件到达持久化存储。
| PG 13 | PG 14 | PG 15 | PG 16 | PG 17 | PG 18 |
|---|---|---|---|---|---|
| — | — | ✓ | ✓ | ✓ | ✓ |
触发机制
WAIT_EVENT_VERSION_FILE_SYNC 位于 src/backend/commands/dbcommands.c:511,是经 grep 核验的报告路径。公共身份/资源映射位于 src/backend/utils/activity/wait_event_names.txt:261。探针覆盖的操作是:等待创建数据库时的版本文件到达持久化存储。PostgreSQL 在 VersionFileSync 所表示的文件或异步 I/O 操作周围报告此事件;内核、存储栈或 I/O worker 完成该步骤后,后端继续执行。
正常还是麻烦?
- 正常: 当负载本来就应以当前速率执行对应的读取、写入、同步、分配或完成操作时,这项等待正常。
- 需要调查: 若它持续存在并伴随前台延迟、大量并发等待者、存储长尾延迟、限速或错误,应当调查。
诊断 SQL
处置建议
- 确认当前负载阶段本来就应访问这类文件。
- 在可用版本上关联 pg_stat_io 与具体设备延迟。
- 先修复访问路径、突发形状或受影响存储层,再调整无关的内存参数。
源码证据
- PostgreSQL 18.6 · src/backend/commands/dbcommands.c:511 —
WAIT_EVENT_VERSION_FILE_SYNC - PostgreSQL 18.6 · src/backend/utils/activity/wait_event_names.txt:261 —
VERSION_FILE_SYNC
关联控制项与信号
- GUC: 无直接关联项。
- 指标: [metric:waiting_sessions] · [metric:wait_event_share] · [metric:io_read_time] · [metric:io_write_time]
6.72 - IO: VersionFileWrite
VersionFileWrite
版本PG 15-18
证据2 个源码位置
官方描述译文
等待在创建数据库时写入版本文件。
| PG 13 | PG 14 | PG 15 | PG 16 | PG 17 | PG 18 |
|---|---|---|---|---|---|
| — | — | ✓ | ✓ | ✓ | ✓ |
触发机制
WAIT_EVENT_VERSION_FILE_WRITE 位于 src/backend/commands/dbcommands.c:498,是经 grep 核验的报告路径。公共身份/资源映射位于 src/backend/utils/activity/wait_event_names.txt:262。探针覆盖的操作是:等待在创建数据库时写入版本文件。PostgreSQL 在 VersionFileWrite 所表示的文件或异步 I/O 操作周围报告此事件;内核、存储栈或 I/O worker 完成该步骤后,后端继续执行。
正常还是麻烦?
- 正常: 当负载本来就应以当前速率执行对应的读取、写入、同步、分配或完成操作时,这项等待正常。
- 需要调查: 若它持续存在并伴随前台延迟、大量并发等待者、存储长尾延迟、限速或错误,应当调查。
诊断 SQL
处置建议
- 确认当前负载阶段本来就应访问这类文件。
- 在可用版本上关联 pg_stat_io 与具体设备延迟。
- 先修复访问路径、突发形状或受影响存储层,再调整无关的内存参数。
源码证据
- PostgreSQL 18.6 · src/backend/commands/dbcommands.c:498 —
WAIT_EVENT_VERSION_FILE_WRITE - PostgreSQL 18.6 · src/backend/utils/activity/wait_event_names.txt:262 —
VERSION_FILE_WRITE
关联控制项与信号
- GUC: 无直接关联项。
- 指标: [metric:waiting_sessions] · [metric:wait_event_share] · [metric:io_read_time] · [metric:io_write_time]
6.73 - IO: WalBootstrapSync
WalBootstrapSync
版本PG 17-18
证据4 个源码位置
官方描述译文
等待引导初始化期间的 WAL 到达持久化存储。
| PG 13 | PG 14 | PG 15 | PG 16 | PG 17 | PG 18 |
|---|---|---|---|---|---|
| — | — | — | — | ✓ | ✓ |
历史名称:IO/WALBootstrapSync (PG 13-16)
触发机制
WAIT_EVENT_WAL_BOOTSTRAP_SYNC 位于 src/backend/access/transam/xlog.c:4776,是经 grep 核验的报告路径。公共身份/资源映射位于 src/backend/utils/activity/wait_event.c:733。探针覆盖的操作是:等待引导初始化期间的 WAL 到达持久化存储。PostgreSQL 在 WalBootstrapSync 所表示的文件或异步 I/O 操作周围报告此事件;内核、存储栈或 I/O worker 完成该步骤后,后端继续执行。
正常还是麻烦?
- 正常: 当负载本来就应以当前速率执行对应的读取、写入、同步、分配或完成操作时,这项等待正常。
- 需要调查: 若它持续存在并伴随前台延迟、大量并发等待者、存储长尾延迟、限速或错误,应当调查。
诊断 SQL
处置建议
- 确认当前负载阶段本来就应访问这类文件。
- 在可用版本上关联 pg_stat_io 与具体设备延迟。
- 先修复访问路径、突发形状或受影响存储层,再调整无关的内存参数。
源码证据
- PostgreSQL 16.15 · src/backend/access/transam/xlog.c:4776 —
WAIT_EVENT_WAL_BOOTSTRAP_SYNC - PostgreSQL 16.15 · src/backend/utils/activity/wait_event.c:733 —
WALBootstrapSync - PostgreSQL 18.6 · src/backend/access/transam/xlog.c:5198 —
WAIT_EVENT_WAL_BOOTSTRAP_SYNC - PostgreSQL 18.6 · src/backend/utils/activity/wait_event_names.txt:264 —
WAL_BOOTSTRAP_SYNC
关联控制项与信号
6.74 - IO: WalBootstrapWrite
WalBootstrapWrite
版本PG 17-18
证据4 个源码位置
官方描述译文
等待在引导初始化期间写入 WAL 页面。
| PG 13 | PG 14 | PG 15 | PG 16 | PG 17 | PG 18 |
|---|---|---|---|---|---|
| — | — | — | — | ✓ | ✓ |
历史名称:IO/WALBootstrapWrite (PG 13-16)
触发机制
WAIT_EVENT_WAL_BOOTSTRAP_WRITE 位于 src/backend/access/transam/xlog.c:4764,是经 grep 核验的报告路径。公共身份/资源映射位于 src/backend/utils/activity/wait_event.c:736。探针覆盖的操作是:等待在引导初始化期间写入 WAL 页面。PostgreSQL 在 WalBootstrapWrite 所表示的文件或异步 I/O 操作周围报告此事件;内核、存储栈或 I/O worker 完成该步骤后,后端继续执行。
正常还是麻烦?
- 正常: 当负载本来就应以当前速率执行对应的读取、写入、同步、分配或完成操作时,这项等待正常。
- 需要调查: 若它持续存在并伴随前台延迟、大量并发等待者、存储长尾延迟、限速或错误,应当调查。
诊断 SQL
处置建议
- 确认当前负载阶段本来就应访问这类文件。
- 在可用版本上关联 pg_stat_io 与具体设备延迟。
- 先修复访问路径、突发形状或受影响存储层,再调整无关的内存参数。
源码证据
- PostgreSQL 16.15 · src/backend/access/transam/xlog.c:4764 —
WAIT_EVENT_WAL_BOOTSTRAP_WRITE - PostgreSQL 16.15 · src/backend/utils/activity/wait_event.c:736 —
WALBootstrapWrite - PostgreSQL 18.6 · src/backend/access/transam/xlog.c:5186 —
WAIT_EVENT_WAL_BOOTSTRAP_WRITE - PostgreSQL 18.6 · src/backend/utils/activity/wait_event_names.txt:265 —
WAL_BOOTSTRAP_WRITE
关联控制项与信号
6.75 - IO: WalCopyRead
WalCopyRead
版本PG 17-18
证据4 个源码位置
官方描述译文
等待通过复制现有 WAL segment 创建新 WAL segment 时读取数据。
| PG 13 | PG 14 | PG 15 | PG 16 | PG 17 | PG 18 |
|---|---|---|---|---|---|
| — | — | — | — | ✓ | ✓ |
历史名称:IO/WALCopyRead (PG 13-16)
触发机制
WAIT_EVENT_WAL_COPY_READ 位于 src/backend/access/transam/xlog.c:3190,是经 grep 核验的报告路径。公共身份/资源映射位于 src/backend/utils/activity/wait_event.c:739。探针覆盖的操作是:等待通过复制现有 WAL segment 创建新 WAL segment 时读取数据。PostgreSQL 在 WalCopyRead 所表示的文件或异步 I/O 操作周围报告此事件;内核、存储栈或 I/O worker 完成该步骤后,后端继续执行。
正常还是麻烦?
- 正常: 当负载本来就应以当前速率执行对应的读取、写入、同步、分配或完成操作时,这项等待正常。
- 需要调查: 若它持续存在并伴随前台延迟、大量并发等待者、存储长尾延迟、限速或错误,应当调查。
诊断 SQL
处置建议
- 确认当前负载阶段本来就应访问这类文件。
- 在可用版本上关联 pg_stat_io 与具体设备延迟。
- 先修复访问路径、突发形状或受影响存储层,再调整无关的内存参数。
源码证据
- PostgreSQL 16.15 · src/backend/access/transam/xlog.c:3190 —
WAIT_EVENT_WAL_COPY_READ - PostgreSQL 16.15 · src/backend/utils/activity/wait_event.c:739 —
WALCopyRead - PostgreSQL 18.6 · src/backend/access/transam/xlog.c:3471 —
WAIT_EVENT_WAL_COPY_READ - PostgreSQL 18.6 · src/backend/utils/activity/wait_event_names.txt:266 —
WAL_COPY_READ
关联控制项与信号
6.76 - IO: WalCopySync
WalCopySync
版本PG 17-18
证据4 个源码位置
官方描述译文
等待通过复制现有 WAL segment 创建的新 WAL segment 到达持久化存储。
| PG 13 | PG 14 | PG 15 | PG 16 | PG 17 | PG 18 |
|---|---|---|---|---|---|
| — | — | — | — | ✓ | ✓ |
历史名称:IO/WALCopySync (PG 13-16)
触发机制
WAIT_EVENT_WAL_COPY_SYNC 位于 src/backend/access/transam/xlog.c:3227,是经 grep 核验的报告路径。公共身份/资源映射位于 src/backend/utils/activity/wait_event.c:742。探针覆盖的操作是:等待通过复制现有 WAL segment 创建的新 WAL segment 到达持久化存储。PostgreSQL 在 WalCopySync 所表示的文件或异步 I/O 操作周围报告此事件;内核、存储栈或 I/O worker 完成该步骤后,后端继续执行。
正常还是麻烦?
- 正常: 当负载本来就应以当前速率执行对应的读取、写入、同步、分配或完成操作时,这项等待正常。
- 需要调查: 若它持续存在并伴随前台延迟、大量并发等待者、存储长尾延迟、限速或错误,应当调查。
诊断 SQL
处置建议
- 确认当前负载阶段本来就应访问这类文件。
- 在可用版本上关联 pg_stat_io 与具体设备延迟。
- 先修复访问路径、突发形状或受影响存储层,再调整无关的内存参数。
源码证据
- PostgreSQL 16.15 · src/backend/access/transam/xlog.c:3227 —
WAIT_EVENT_WAL_COPY_SYNC - PostgreSQL 16.15 · src/backend/utils/activity/wait_event.c:742 —
WALCopySync - PostgreSQL 18.6 · src/backend/access/transam/xlog.c:3508 —
WAIT_EVENT_WAL_COPY_SYNC - PostgreSQL 18.6 · src/backend/utils/activity/wait_event_names.txt:267 —
WAL_COPY_SYNC
关联控制项与信号
6.77 - IO: WalCopyWrite
WalCopyWrite
版本PG 17-18
证据4 个源码位置
官方描述译文
等待通过复制现有 WAL segment 创建新 WAL segment 时写入数据。
| PG 13 | PG 14 | PG 15 | PG 16 | PG 17 | PG 18 |
|---|---|---|---|---|---|
| — | — | — | — | ✓ | ✓ |
历史名称:IO/WALCopyWrite (PG 13-16)
触发机制
WAIT_EVENT_WAL_COPY_WRITE 位于 src/backend/access/transam/xlog.c:3208,是经 grep 核验的报告路径。公共身份/资源映射位于 src/backend/utils/activity/wait_event.c:745。探针覆盖的操作是:等待通过复制现有 WAL segment 创建新 WAL segment 时写入数据。PostgreSQL 在 WalCopyWrite 所表示的文件或异步 I/O 操作周围报告此事件;内核、存储栈或 I/O worker 完成该步骤后,后端继续执行。
正常还是麻烦?
- 正常: 当负载本来就应以当前速率执行对应的读取、写入、同步、分配或完成操作时,这项等待正常。
- 需要调查: 若它持续存在并伴随前台延迟、大量并发等待者、存储长尾延迟、限速或错误,应当调查。
诊断 SQL
处置建议
- 确认当前负载阶段本来就应访问这类文件。
- 在可用版本上关联 pg_stat_io 与具体设备延迟。
- 先修复访问路径、突发形状或受影响存储层,再调整无关的内存参数。
源码证据
- PostgreSQL 16.15 · src/backend/access/transam/xlog.c:3208 —
WAIT_EVENT_WAL_COPY_WRITE - PostgreSQL 16.15 · src/backend/utils/activity/wait_event.c:745 —
WALCopyWrite - PostgreSQL 18.6 · src/backend/access/transam/xlog.c:3489 —
WAIT_EVENT_WAL_COPY_WRITE - PostgreSQL 18.6 · src/backend/utils/activity/wait_event_names.txt:268 —
WAL_COPY_WRITE
关联控制项与信号
6.78 - IO: WalInitSync
WalInitSync
版本PG 17-18
证据4 个源码位置
官方描述译文
等待新初始化的 WAL 文件到达持久化存储。
| PG 13 | PG 14 | PG 15 | PG 16 | PG 17 | PG 18 |
|---|---|---|---|---|---|
| — | — | — | — | ✓ | ✓ |
历史名称:IO/WALInitSync (PG 13-16)
触发机制
WAIT_EVENT_WAL_INIT_SYNC 位于 src/backend/access/transam/xlog.c:3028,是经 grep 核验的报告路径。公共身份/资源映射位于 src/backend/utils/activity/wait_event.c:748。探针覆盖的操作是:等待新初始化的 WAL 文件到达持久化存储。PostgreSQL 在 WalInitSync 所表示的文件或异步 I/O 操作周围报告此事件;内核、存储栈或 I/O worker 完成该步骤后,后端继续执行。
正常还是麻烦?
- 正常: 当负载本来就应以当前速率执行对应的读取、写入、同步、分配或完成操作时,这项等待正常。
- 需要调查: 若它持续存在并伴随前台延迟、大量并发等待者、存储长尾延迟、限速或错误,应当调查。
诊断 SQL
处置建议
- 确认当前负载阶段本来就应访问这类文件。
- 在可用版本上关联 pg_stat_io 与具体设备延迟。
- 先修复访问路径、突发形状或受影响存储层,再调整无关的内存参数。
源码证据
- PostgreSQL 16.15 · src/backend/access/transam/xlog.c:3028 —
WAIT_EVENT_WAL_INIT_SYNC - PostgreSQL 16.15 · src/backend/utils/activity/wait_event.c:748 —
WALInitSync - PostgreSQL 18.6 · src/backend/access/transam/xlog.c:3306 —
WAIT_EVENT_WAL_INIT_SYNC - PostgreSQL 18.6 · src/backend/utils/activity/wait_event_names.txt:269 —
WAL_INIT_SYNC
关联控制项与信号
6.79 - IO: WalInitWrite
WalInitWrite
版本PG 17-18
证据4 个源码位置
官方描述译文
等待在初始化新 WAL 文件时写入数据。
| PG 13 | PG 14 | PG 15 | PG 16 | PG 17 | PG 18 |
|---|---|---|---|---|---|
| — | — | — | — | ✓ | ✓ |
历史名称:IO/WALInitWrite (PG 13-16)
触发机制
WAIT_EVENT_WAL_INIT_WRITE 位于 src/backend/access/transam/xlog.c:2977,是经 grep 核验的报告路径。公共身份/资源映射位于 src/backend/utils/activity/wait_event.c:751。探针覆盖的操作是:等待在初始化新 WAL 文件时写入数据。PostgreSQL 在 WalInitWrite 所表示的文件或异步 I/O 操作周围报告此事件;内核、存储栈或 I/O worker 完成该步骤后,后端继续执行。
正常还是麻烦?
- 正常: 当负载本来就应以当前速率执行对应的读取、写入、同步、分配或完成操作时,这项等待正常。
- 需要调查: 若它持续存在并伴随前台延迟、大量并发等待者、存储长尾延迟、限速或错误,应当调查。
诊断 SQL
处置建议
- 确认当前负载阶段本来就应访问这类文件。
- 在可用版本上关联 pg_stat_io 与具体设备延迟。
- 先修复访问路径、突发形状或受影响存储层,再调整无关的内存参数。
源码证据
- PostgreSQL 16.15 · src/backend/access/transam/xlog.c:2977 —
WAIT_EVENT_WAL_INIT_WRITE - PostgreSQL 16.15 · src/backend/utils/activity/wait_event.c:751 —
WALInitWrite - PostgreSQL 18.6 · src/backend/access/transam/xlog.c:3244 —
WAIT_EVENT_WAL_INIT_WRITE - PostgreSQL 18.6 · src/backend/utils/activity/wait_event_names.txt:270 —
WAL_INIT_WRITE
关联控制项与信号
6.80 - IO: WalRead
WalRead
版本PG 17-18
证据4 个源码位置
官方描述译文
等待从 WAL 文件中读取数据。
| PG 13 | PG 14 | PG 15 | PG 16 | PG 17 | PG 18 |
|---|---|---|---|---|---|
| — | — | — | — | ✓ | ✓ |
历史名称:IO/WALRead (PG 13-16)
触发机制
WAIT_EVENT_WAL_READ 位于 src/backend/access/transam/xlogreader.c:1570,是经 grep 核验的报告路径。公共身份/资源映射位于 src/backend/utils/activity/wait_event.c:754。探针覆盖的操作是:等待从 WAL 文件中读取数据。PostgreSQL 在 WalRead 所表示的文件或异步 I/O 操作周围报告此事件;内核、存储栈或 I/O worker 完成该步骤后,后端继续执行。
正常还是麻烦?
- 正常: 当负载本来就应以当前速率执行对应的读取、写入、同步、分配或完成操作时,这项等待正常。
- 需要调查: 若它持续存在并伴随前台延迟、大量并发等待者、存储长尾延迟、限速或错误,应当调查。
诊断 SQL
处置建议
- 确认当前负载阶段本来就应访问这类文件。
- 在可用版本上关联 pg_stat_io 与具体设备延迟。
- 先修复访问路径、突发形状或受影响存储层,再调整无关的内存参数。
源码证据
- PostgreSQL 16.15 · src/backend/access/transam/xlogreader.c:1570 —
WAIT_EVENT_WAL_READ - PostgreSQL 16.15 · src/backend/utils/activity/wait_event.c:754 —
WALRead - PostgreSQL 18.6 · src/backend/access/transam/xlogreader.c:1572 —
WAIT_EVENT_WAL_READ - PostgreSQL 18.6 · src/backend/utils/activity/wait_event_names.txt:271 —
WAL_READ
关联控制项与信号
6.81 - IO: WalSummaryRead
WalSummaryRead
版本PG 17-18
证据2 个源码位置
官方描述译文
等待从 WAL summary 文件中读取数据。
| PG 13 | PG 14 | PG 15 | PG 16 | PG 17 | PG 18 |
|---|---|---|---|---|---|
| — | — | — | — | ✓ | ✓ |
触发机制
WAIT_EVENT_WAL_SUMMARY_READ 位于 src/backend/backup/walsummary.c:279,是经 grep 核验的报告路径。公共身份/资源映射位于 src/backend/utils/activity/wait_event_names.txt:272。探针覆盖的操作是:等待从 WAL summary 文件中读取数据。PostgreSQL 在 WalSummaryRead 所表示的文件或异步 I/O 操作周围报告此事件;内核、存储栈或 I/O worker 完成该步骤后,后端继续执行。
正常还是麻烦?
- 正常: 当负载本来就应以当前速率执行对应的读取、写入、同步、分配或完成操作时,这项等待正常。
- 需要调查: 若它持续存在并伴随前台延迟、大量并发等待者、存储长尾延迟、限速或错误,应当调查。
诊断 SQL
处置建议
- 确认当前负载阶段本来就应访问这类文件。
- 在可用版本上关联 pg_stat_io 与具体设备延迟。
- 先修复访问路径、突发形状或受影响存储层,再调整无关的内存参数。
源码证据
- PostgreSQL 18.6 · src/backend/backup/walsummary.c:279 —
WAIT_EVENT_WAL_SUMMARY_READ - PostgreSQL 18.6 · src/backend/utils/activity/wait_event_names.txt:272 —
WAL_SUMMARY_READ
关联控制项与信号
6.82 - IO: WalSummaryWrite
WalSummaryWrite
版本PG 17-18
证据2 个源码位置
官方描述译文
等待向 WAL summary 文件写入数据。
| PG 13 | PG 14 | PG 15 | PG 16 | PG 17 | PG 18 |
|---|---|---|---|---|---|
| — | — | — | — | ✓ | ✓ |
触发机制
WAIT_EVENT_WAL_SUMMARY_WRITE 位于 src/backend/backup/walsummary.c:300,是经 grep 核验的报告路径。公共身份/资源映射位于 src/backend/utils/activity/wait_event_names.txt:273。探针覆盖的操作是:等待向 WAL summary 文件写入数据。PostgreSQL 在 WalSummaryWrite 所表示的文件或异步 I/O 操作周围报告此事件;内核、存储栈或 I/O worker 完成该步骤后,后端继续执行。
正常还是麻烦?
- 正常: 当负载本来就应以当前速率执行对应的读取、写入、同步、分配或完成操作时,这项等待正常。
- 需要调查: 若它持续存在并伴随前台延迟、大量并发等待者、存储长尾延迟、限速或错误,应当调查。
诊断 SQL
处置建议
- 确认当前负载阶段本来就应访问这类文件。
- 在可用版本上关联 pg_stat_io 与具体设备延迟。
- 先修复访问路径、突发形状或受影响存储层,再调整无关的内存参数。
源码证据
- PostgreSQL 18.6 · src/backend/backup/walsummary.c:300 —
WAIT_EVENT_WAL_SUMMARY_WRITE - PostgreSQL 18.6 · src/backend/utils/activity/wait_event_names.txt:273 —
WAL_SUMMARY_WRITE
关联控制项与信号
6.83 - IO: WalSync
WalSync
版本PG 17-18
证据4 个源码位置
官方描述译文
等待 WAL 文件到达持久化存储。
| PG 13 | PG 14 | PG 15 | PG 16 | PG 17 | PG 18 |
|---|---|---|---|---|---|
| — | — | — | — | ✓ | ✓ |
历史名称:IO/WALSync (PG 13-16)
触发机制
WAIT_EVENT_WAL_SYNC 位于 src/backend/access/transam/xlog.c:8303,是经 grep 核验的报告路径。公共身份/资源映射位于 src/backend/utils/activity/wait_event.c:757。探针覆盖的操作是:等待 WAL 文件到达持久化存储。PostgreSQL 在 WalSync 所表示的文件或异步 I/O 操作周围报告此事件;内核、存储栈或 I/O worker 完成该步骤后,后端继续执行。
正常还是麻烦?
- 正常: 当负载本来就应以当前速率执行对应的读取、写入、同步、分配或完成操作时,这项等待正常。
- 需要调查: 若它持续存在并伴随前台延迟、大量并发等待者、存储长尾延迟、限速或错误,应当调查。
诊断 SQL
处置建议
- 确认当前负载阶段本来就应访问这类文件。
- 在可用版本上关联 pg_stat_io 与具体设备延迟。
- 先修复访问路径、突发形状或受影响存储层,再调整无关的内存参数。
源码证据
- PostgreSQL 16.15 · src/backend/access/transam/xlog.c:8303 —
WAIT_EVENT_WAL_SYNC - PostgreSQL 16.15 · src/backend/utils/activity/wait_event.c:757 —
WALSync - PostgreSQL 18.6 · src/backend/access/transam/xlog.c:8767 —
WAIT_EVENT_WAL_SYNC - PostgreSQL 18.6 · src/backend/utils/activity/wait_event_names.txt:274 —
WAL_SYNC
关联控制项与信号
6.84 - IO: WalSyncMethodAssign
WalSyncMethodAssign
版本PG 17-18
证据4 个源码位置
官方描述译文
等待分配新的 WAL 同步方法时写入的数据到达持久化存储。
| PG 13 | PG 14 | PG 15 | PG 16 | PG 17 | PG 18 |
|---|---|---|---|---|---|
| — | — | — | — | ✓ | ✓ |
历史名称:IO/WALSyncMethodAssign (PG 13-16)
触发机制
WAIT_EVENT_WAL_SYNC_METHOD_ASSIGN 位于 src/backend/access/transam/xlog.c:8251,是经 grep 核验的报告路径。公共身份/资源映射位于 src/backend/utils/activity/wait_event.c:760。探针覆盖的操作是:等待分配新的 WAL 同步方法时写入的数据到达持久化存储。PostgreSQL 在 WalSyncMethodAssign 所表示的文件或异步 I/O 操作周围报告此事件;内核、存储栈或 I/O worker 完成该步骤后,后端继续执行。
正常还是麻烦?
- 正常: 当负载本来就应以当前速率执行对应的读取、写入、同步、分配或完成操作时,这项等待正常。
- 需要调查: 若它持续存在并伴随前台延迟、大量并发等待者、存储长尾延迟、限速或错误,应当调查。
诊断 SQL
处置建议
- 确认当前负载阶段本来就应访问这类文件。
- 在可用版本上关联 pg_stat_io 与具体设备延迟。
- 先修复访问路径、突发形状或受影响存储层,再调整无关的内存参数。
源码证据
- PostgreSQL 16.15 · src/backend/access/transam/xlog.c:8251 —
WAIT_EVENT_WAL_SYNC_METHOD_ASSIGN - PostgreSQL 16.15 · src/backend/utils/activity/wait_event.c:760 —
WALSyncMethodAssign - PostgreSQL 18.6 · src/backend/access/transam/xlog.c:8716 —
WAIT_EVENT_WAL_SYNC_METHOD_ASSIGN - PostgreSQL 18.6 · src/backend/utils/activity/wait_event_names.txt:275 —
WAL_SYNC_METHOD_ASSIGN
关联控制项与信号
6.85 - IO: WalWrite
WalWrite
版本PG 17-18
证据4 个源码位置
官方描述译文
等待向 WAL 文件写入数据。
| PG 13 | PG 14 | PG 15 | PG 16 | PG 17 | PG 18 |
|---|---|---|---|---|---|
| — | — | — | — | ✓ | ✓ |
历史名称:IO/WALWrite (PG 13-16)
触发机制
WAIT_EVENT_WAL_WRITE 位于 src/backend/access/transam/xlog.c:2200,是经 grep 核验的报告路径。公共身份/资源映射位于 src/backend/utils/activity/wait_event.c:763。探针覆盖的操作是:等待向 WAL 文件写入数据。PostgreSQL 在 WalWrite 所表示的文件或异步 I/O 操作周围报告此事件;内核、存储栈或 I/O worker 完成该步骤后,后端继续执行。
正常还是麻烦?
- 正常: 当负载本来就应以当前速率执行对应的读取、写入、同步、分配或完成操作时,这项等待正常。
- 需要调查: 若它持续存在并伴随前台延迟、大量并发等待者、存储长尾延迟、限速或错误,应当调查。
诊断 SQL
处置建议
- 确认当前负载阶段本来就应访问这类文件。
- 在可用版本上关联 pg_stat_io 与具体设备延迟。
- 先修复访问路径、突发形状或受影响存储层,再调整无关的内存参数。
源码证据
- PostgreSQL 16.15 · src/backend/access/transam/xlog.c:2200 —
WAIT_EVENT_WAL_WRITE - PostgreSQL 16.15 · src/backend/utils/activity/wait_event.c:763 —
WALWrite - PostgreSQL 18.6 · src/backend/access/transam/xlog.c:2433 —
WAIT_EVENT_WAL_WRITE - PostgreSQL 18.6 · src/backend/utils/activity/wait_event_names.txt:276 —
WAL_WRITE
关联控制项与信号
6.86 - IO: WalsenderTimelineHistoryRead
WalsenderTimelineHistoryRead
版本PG 17-18
证据4 个源码位置
官方描述译文
等待在 WAL sender 执行 timeline 命令期间从时间线历史文件中读取数据。
| PG 13 | PG 14 | PG 15 | PG 16 | PG 17 | PG 18 |
|---|---|---|---|---|---|
| — | — | — | — | ✓ | ✓ |
历史名称:IO/WALSenderTimelineHistoryRead (PG 13-16)
触发机制
WAIT_EVENT_WALSENDER_TIMELINE_HISTORY_READ 位于 src/backend/replication/walsender.c:654,是经 grep 核验的报告路径。公共身份/资源映射位于 src/backend/utils/activity/wait_event.c:730。探针覆盖的操作是:等待在 WAL sender 执行 timeline 命令期间从时间线历史文件中读取数据。PostgreSQL 在 WalsenderTimelineHistoryRead 所表示的文件或异步 I/O 操作周围报告此事件;内核、存储栈或 I/O worker 完成该步骤后,后端继续执行。
正常还是麻烦?
- 正常: 当负载本来就应以当前速率执行对应的读取、写入、同步、分配或完成操作时,这项等待正常。
- 需要调查: 若它持续存在并伴随前台延迟、大量并发等待者、存储长尾延迟、限速或错误,应当调查。
诊断 SQL
处置建议
- 确认当前负载阶段本来就应访问这类文件。
- 在可用版本上关联 pg_stat_io 与具体设备延迟。
- 先修复访问路径、突发形状或受影响存储层,再调整无关的内存参数。
源码证据
- PostgreSQL 16.15 · src/backend/replication/walsender.c:654 —
WAIT_EVENT_WALSENDER_TIMELINE_HISTORY_READ - PostgreSQL 16.15 · src/backend/utils/activity/wait_event.c:730 —
WALSenderTimelineHistoryRead - PostgreSQL 18.6 · src/backend/replication/walsender.c:637 —
WAIT_EVENT_WALSENDER_TIMELINE_HISTORY_READ - PostgreSQL 18.6 · src/backend/utils/activity/wait_event_names.txt:263 —
WALSENDER_TIMELINE_HISTORY_READ
关联控制项与信号
7 - IPC 等待
IPC 表示协调:当前进程已经走到一个依赖另一个 PostgreSQL 进程或执行参与者的位置。对端可能是并行 worker、WAL receiver、checkpointer、archiver、复制进程,或共享内存协议里的另一个后端。
找到缺席的对端或阶段
等待者本身往往是健康的。先问谁应该向它发信号,再检查该参与者的状态。并行查询事件按阶段图阅读;复制事件按 sender/receiver 流水线阅读;检查点事件按全局屏障阅读。
- 正常: 并行计划汇合、检查点开始/完成、worker 启动或同步复制中的短暂等待。
- 关注: 前台等待者连续三次采样都停在同一阶段,而对端没有可见进展。
- 紧急: 对端已退出或被阻塞、队列无法排空、复制/故障切换停滞,或大量会话依赖同一个卡住的协调者。
值得先认出的事件
| 事件 | 对端或阶段 |
|---|---|
| BufferIo | 正在为共享缓冲区执行 I/O 的另一个后端 |
| ExecuteGather | 向 Gather 节点提供数据的子进程 |
| ParallelFinish | 并行 worker 到达计划完成点 |
| CheckpointDone | checkpointer 完成请求的检查点 |
| SyncRep | 远端同步备库确认 |
| WalReceiverWaitStart | startup 进程等待流复制数据 |
| MessageQueueReceive | 共享内存消息队列的生产者 |
| RecoveryPause | 恢复被运维策略有意暂停 |
常见误读
- 杀掉等待者无法修复已死亡或被阻塞的对端。
IPC/SyncRep是确认延迟;LWLock/SyncRep是共享队列/状态元数据上的竞争。- 许多并行等待名称本来就是屏障。真正的问题是所有参与者是否最终推进。
RecoveryPause可能完全是有意行为;先检查pg_is_wal_replay_paused()。
7.1 - IPC: AppendReady
AppendReady
版本PG 14-18
证据2 个源码位置
官方描述译文
等待 Append 计划节点的子计划节点就绪。
| PG 13 | PG 14 | PG 15 | PG 16 | PG 17 | PG 18 |
|---|---|---|---|---|---|
| — | ✓ | ✓ | ✓ | ✓ | ✓ |
触发机制
WAIT_EVENT_APPEND_READY 位于 src/backend/executor/nodeAppend.c:1079,是经 grep 核验的报告路径。公共身份/资源映射位于 src/backend/utils/activity/wait_event_names.txt:106。探针覆盖的操作是:等待 Append 计划节点的子计划节点就绪。AppendReady 路径已经到达进程协调点,会休眠到对端、worker、屏障、队列或复制阶段发出进展信号。
正常还是麻烦?
- 正常: 只要所有参与者都在继续推进,短暂汇合就属正常。
- 需要调查: 同一阶段连续三次采样仍存在、预期对端缺失或被阻塞,或队列及其依赖者停止推进时,应当调查。
诊断 SQL
处置建议
- 确认事件所指的对端或阶段。
- 检查该参与者的等待、错误与进展状态。
- 修复停滞的参与者或上游依赖,不要把等待者当作根因。
源码证据
- PostgreSQL 18.6 · src/backend/executor/nodeAppend.c:1079 —
WAIT_EVENT_APPEND_READY - PostgreSQL 18.6 · src/backend/utils/activity/wait_event_names.txt:106 —
APPEND_READY
关联控制项与信号
- GUC: 无直接关联项。
- 指标: [metric:waiting_sessions] · [metric:wait_event_share]
7.2 - IPC: ArchiveCleanupCommand
ArchiveCleanupCommand
版本PG 15-18
证据2 个源码位置
官方描述译文
等待 archive_cleanup_command 完成。
| PG 13 | PG 14 | PG 15 | PG 16 | PG 17 | PG 18 |
|---|---|---|---|---|---|
| — | — | ✓ | ✓ | ✓ | ✓ |
触发机制
WAIT_EVENT_ARCHIVE_CLEANUP_COMMAND 位于 src/backend/access/transam/xlog.c:7885,是经 grep 核验的报告路径。公共身份/资源映射位于 src/backend/utils/activity/wait_event_names.txt:107。探针覆盖的操作是:等待 archive_cleanup_command 完成。ArchiveCleanupCommand 路径已经到达进程协调点,会休眠到对端、worker、屏障、队列或复制阶段发出进展信号。
正常还是麻烦?
- 正常: 只要所有参与者都在继续推进,短暂汇合就属正常。
- 需要调查: 同一阶段连续三次采样仍存在、预期对端缺失或被阻塞,或队列及其依赖者停止推进时,应当调查。
诊断 SQL
处置建议
- 确认事件所指的对端或阶段。
- 检查该参与者的等待、错误与进展状态。
- 修复停滞的参与者或上游依赖,不要把等待者当作根因。
源码证据
- PostgreSQL 18.6 · src/backend/access/transam/xlog.c:7885 —
WAIT_EVENT_ARCHIVE_CLEANUP_COMMAND - PostgreSQL 18.6 · src/backend/utils/activity/wait_event_names.txt:107 —
ARCHIVE_CLEANUP_COMMAND
关联控制项与信号
- GUC: 无直接关联项。
- 指标: [metric:waiting_sessions] · [metric:wait_event_share]
7.3 - IPC: ArchiveCommand
ArchiveCommand
版本PG 15-18
证据2 个源码位置
官方描述译文
等待 archive_command 完成。
| PG 13 | PG 14 | PG 15 | PG 16 | PG 17 | PG 18 |
|---|---|---|---|---|---|
| — | — | ✓ | ✓ | ✓ | ✓ |
触发机制
WAIT_EVENT_ARCHIVE_COMMAND 位于 src/backend/archive/shell_archive.c:79,是经 grep 核验的报告路径。公共身份/资源映射位于 src/backend/utils/activity/wait_event_names.txt:108。探针覆盖的操作是:等待 archive_command 完成。ArchiveCommand 路径已经到达进程协调点,会休眠到对端、worker、屏障、队列或复制阶段发出进展信号。
正常还是麻烦?
- 正常: 只要所有参与者都在继续推进,短暂汇合就属正常。
- 需要调查: 同一阶段连续三次采样仍存在、预期对端缺失或被阻塞,或队列及其依赖者停止推进时,应当调查。
诊断 SQL
处置建议
- 确认事件所指的对端或阶段。
- 检查该参与者的等待、错误与进展状态。
- 修复停滞的参与者或上游依赖,不要把等待者当作根因。
源码证据
- PostgreSQL 18.6 · src/backend/archive/shell_archive.c:79 —
WAIT_EVENT_ARCHIVE_COMMAND - PostgreSQL 18.6 · src/backend/utils/activity/wait_event_names.txt:108 —
ARCHIVE_COMMAND
关联控制项与信号
- GUC: 无直接关联项。
- 指标: [metric:waiting_sessions] · [metric:wait_event_share]
7.4 - IPC: BackendTermination
BackendTermination
版本PG 14-18
证据2 个源码位置
官方描述译文
等待另一个后端终止。
| PG 13 | PG 14 | PG 15 | PG 16 | PG 17 | PG 18 |
|---|---|---|---|---|---|
| — | ✓ | ✓ | ✓ | ✓ | ✓ |
触发机制
WAIT_EVENT_BACKEND_TERMINATION 位于 src/backend/storage/ipc/signalfuncs.c:210,是经 grep 核验的报告路径。公共身份/资源映射位于 src/backend/utils/activity/wait_event_names.txt:109。探针覆盖的操作是:等待另一个后端终止。BackendTermination 路径已经到达进程协调点,会休眠到对端、worker、屏障、队列或复制阶段发出进展信号。
正常还是麻烦?
- 正常: 只要所有参与者都在继续推进,短暂汇合就属正常。
- 需要调查: 同一阶段连续三次采样仍存在、预期对端缺失或被阻塞,或队列及其依赖者停止推进时,应当调查。
诊断 SQL
处置建议
- 确认事件所指的对端或阶段。
- 检查该参与者的等待、错误与进展状态。
- 修复停滞的参与者或上游依赖,不要把等待者当作根因。
源码证据
- PostgreSQL 18.6 · src/backend/storage/ipc/signalfuncs.c:210 —
WAIT_EVENT_BACKEND_TERMINATION - PostgreSQL 18.6 · src/backend/utils/activity/wait_event_names.txt:109 —
BACKEND_TERMINATION
关联控制项与信号
- GUC: 无直接关联项。
- 指标: [metric:waiting_sessions] · [metric:wait_event_share]
7.5 - IPC: BackupWaitWalArchive
BackupWaitWalArchive
版本PG 13-18
证据2 个源码位置
官方描述译文
等待备份所需的 WAL 文件成功归档。
| PG 13 | PG 14 | PG 15 | PG 16 | PG 17 | PG 18 |
|---|---|---|---|---|---|
| ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
触发机制
WAIT_EVENT_BACKUP_WAIT_WAL_ARCHIVE 位于 src/backend/access/transam/xlog.c:9405,是经 grep 核验的报告路径。公共身份/资源映射位于 src/backend/utils/activity/wait_event_names.txt:110。探针覆盖的操作是:等待备份所需的 WAL 文件成功归档。BackupWaitWalArchive 路径已经到达进程协调点,会休眠到对端、worker、屏障、队列或复制阶段发出进展信号。
正常还是麻烦?
- 正常: 只要所有参与者都在继续推进,短暂汇合就属正常。
- 需要调查: 同一阶段连续三次采样仍存在、预期对端缺失或被阻塞,或队列及其依赖者停止推进时,应当调查。
诊断 SQL
处置建议
- 确认事件所指的对端或阶段。
- 检查该参与者的等待、错误与进展状态。
- 修复停滞的参与者或上游依赖,不要把等待者当作根因。
源码证据
- PostgreSQL 18.6 · src/backend/access/transam/xlog.c:9405 —
WAIT_EVENT_BACKUP_WAIT_WAL_ARCHIVE - PostgreSQL 18.6 · src/backend/utils/activity/wait_event_names.txt:110 —
BACKUP_WAIT_WAL_ARCHIVE
关联控制项与信号
7.6 - IPC: BgworkerShutdown
BgworkerShutdown
版本PG 17-18
证据4 个源码位置
官方描述译文
等待后台工作进程关闭。
| PG 13 | PG 14 | PG 15 | PG 16 | PG 17 | PG 18 |
|---|---|---|---|---|---|
| — | — | — | — | ✓ | ✓ |
历史名称:IPC/BgWorkerShutdown (PG 13-16)
触发机制
WAIT_EVENT_BGWORKER_SHUTDOWN 位于 src/backend/postmaster/bgworker.c:1188,是经 grep 核验的报告路径。公共身份/资源映射位于 src/backend/utils/activity/wait_event.c:329。探针覆盖的操作是:等待后台工作进程关闭。BgworkerShutdown 路径已经到达进程协调点,会休眠到对端、worker、屏障、队列或复制阶段发出进展信号。
正常还是麻烦?
- 正常: 只要所有参与者都在继续推进,短暂汇合就属正常。
- 需要调查: 同一阶段连续三次采样仍存在、预期对端缺失或被阻塞,或队列及其依赖者停止推进时,应当调查。
诊断 SQL
处置建议
- 确认事件所指的对端或阶段。
- 检查该参与者的等待、错误与进展状态。
- 修复停滞的参与者或上游依赖,不要把等待者当作根因。
源码证据
- PostgreSQL 16.15 · src/backend/postmaster/bgworker.c:1188 —
WAIT_EVENT_BGWORKER_SHUTDOWN - PostgreSQL 16.15 · src/backend/utils/activity/wait_event.c:329 —
BgWorkerShutdown - PostgreSQL 18.6 · src/backend/postmaster/bgworker.c:1275 —
WAIT_EVENT_BGWORKER_SHUTDOWN - PostgreSQL 18.6 · src/backend/utils/activity/wait_event_names.txt:111 —
BGWORKER_SHUTDOWN
关联控制项与信号
- GUC: 无直接关联项。
- 指标: [metric:waiting_sessions] · [metric:wait_event_share]
7.7 - IPC: BgworkerStartup
BgworkerStartup
版本PG 17-18
证据4 个源码位置
官方描述译文
等待后台工作进程启动。
| PG 13 | PG 14 | PG 15 | PG 16 | PG 17 | PG 18 |
|---|---|---|---|---|---|
| — | — | — | — | ✓ | ✓ |
历史名称:IPC/BgWorkerStartup (PG 13-16)
触发机制
WAIT_EVENT_BGWORKER_STARTUP 位于 src/backend/access/transam/parallel.c:771,是经 grep 核验的报告路径。公共身份/资源映射位于 src/backend/utils/activity/wait_event.c:332。探针覆盖的操作是:等待后台工作进程启动。BgworkerStartup 路径已经到达进程协调点,会休眠到对端、worker、屏障、队列或复制阶段发出进展信号。
正常还是麻烦?
- 正常: 只要所有参与者都在继续推进,短暂汇合就属正常。
- 需要调查: 同一阶段连续三次采样仍存在、预期对端缺失或被阻塞,或队列及其依赖者停止推进时,应当调查。
诊断 SQL
处置建议
- 确认事件所指的对端或阶段。
- 检查该参与者的等待、错误与进展状态。
- 修复停滞的参与者或上游依赖,不要把等待者当作根因。
源码证据
- PostgreSQL 16.15 · src/backend/access/transam/parallel.c:771 —
WAIT_EVENT_BGWORKER_STARTUP - PostgreSQL 16.15 · src/backend/utils/activity/wait_event.c:332 —
BgWorkerStartup - PostgreSQL 18.6 · src/backend/access/transam/parallel.c:775 —
WAIT_EVENT_BGWORKER_STARTUP - PostgreSQL 18.6 · src/backend/utils/activity/wait_event_names.txt:112 —
BGWORKER_STARTUP
关联控制项与信号
- GUC: 无直接关联项。
- 指标: [metric:waiting_sessions] · [metric:wait_event_share]
7.8 - IPC: BtreePage
BtreePage
版本PG 13-18
证据2 个源码位置
官方描述译文
等待继续并行 B-tree 扫描所需的页号可用。
| PG 13 | PG 14 | PG 15 | PG 16 | PG 17 | PG 18 |
|---|---|---|---|---|---|
| ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
触发机制
WAIT_EVENT_BTREE_PAGE 位于 src/backend/access/nbtree/nbtree.c:927,是经 grep 核验的报告路径。公共身份/资源映射位于 src/backend/utils/activity/wait_event_names.txt:113。探针覆盖的操作是:等待继续并行 B-tree 扫描所需的页号可用。BtreePage 路径已经到达进程协调点,会休眠到对端、worker、屏障、队列或复制阶段发出进展信号。
正常还是麻烦?
- 正常: 只要所有参与者都在继续推进,短暂汇合就属正常。
- 需要调查: 同一阶段连续三次采样仍存在、预期对端缺失或被阻塞,或队列及其依赖者停止推进时,应当调查。
诊断 SQL
处置建议
- 确认事件所指的对端或阶段。
- 检查该参与者的等待、错误与进展状态。
- 修复停滞的参与者或上游依赖,不要把等待者当作根因。
源码证据
- PostgreSQL 18.6 · src/backend/access/nbtree/nbtree.c:927 —
WAIT_EVENT_BTREE_PAGE - PostgreSQL 18.6 · src/backend/utils/activity/wait_event_names.txt:113 —
BTREE_PAGE
关联控制项与信号
- GUC: 无直接关联项。
- 指标: [metric:waiting_sessions] · [metric:wait_event_share]
7.9 - IPC: BufferIo
BufferIo
版本PG 17-18
证据7 个源码位置
官方描述译文
等待缓冲区 I/O 完成。
| PG 13 | PG 14 | PG 15 | PG 16 | PG 17 | PG 18 |
|---|---|---|---|---|---|
| — | — | — | — | ✓ | ✓ |
历史名称:IPC/BufferIO (PG 14-16), LWLock/BufferIO (PG 13)
触发机制
pgstat_report_wait_start 位于 src/backend/storage/lmgr/lwlock.c:765,是经 grep 核验的报告路径。公共身份/资源映射位于 src/backend/access/transam/xact.c:2627。探针覆盖的操作是:等待缓冲区 I/O 完成。BufferIo 路径已经到达进程协调点,会休眠到对端、worker、屏障、队列或复制阶段发出进展信号。
正常还是麻烦?
- 正常: 只要所有参与者都在继续推进,短暂汇合就属正常。
- 需要调查: 同一阶段连续三次采样仍存在、预期对端缺失或被阻塞,或队列及其依赖者停止推进时,应当调查。
诊断 SQL
处置建议
- 确认事件所指的对端或阶段。
- 检查该参与者的等待、错误与进展状态。
- 修复停滞的参与者或上游依赖,不要把等待者当作根因。
源码证据
- PostgreSQL 13.23 · src/backend/access/transam/xact.c:2627 —
BufferIO - PostgreSQL 13.23 · src/backend/storage/lmgr/lwlock.c:150 —
BufferIO - PostgreSQL 13.23 · src/backend/storage/lmgr/lwlock.c:765 —
pgstat_report_wait_start - PostgreSQL 16.15 · src/backend/storage/buffer/bufmgr.c:5167 —
WAIT_EVENT_BUFFER_IO
关联控制项与信号
- GUC: 无直接关联项。
- 指标: [metric:waiting_sessions] · [metric:wait_event_share]
7.10 - IPC: CheckpointDelayComplete
CheckpointDelayComplete
版本PG 17-18
证据2 个源码位置
官方描述译文
等待后端解除对检查点完成的阻塞。
| PG 13 | PG 14 | PG 15 | PG 16 | PG 17 | PG 18 |
|---|---|---|---|---|---|
| — | — | — | — | ✓ | ✓ |
触发机制
WAIT_EVENT_CHECKPOINT_DELAY_COMPLETE 位于 src/backend/access/transam/xlog.c:7228,是经 grep 核验的报告路径。公共身份/资源映射位于 src/backend/utils/activity/wait_event_names.txt:115。探针覆盖的操作是:等待后端解除对检查点完成的阻塞。CheckpointDelayComplete 路径已经到达进程协调点,会休眠到对端、worker、屏障、队列或复制阶段发出进展信号。
正常还是麻烦?
- 正常: 只要所有参与者都在继续推进,短暂汇合就属正常。
- 需要调查: 同一阶段连续三次采样仍存在、预期对端缺失或被阻塞,或队列及其依赖者停止推进时,应当调查。
诊断 SQL
处置建议
- 确认事件所指的对端或阶段。
- 检查该参与者的等待、错误与进展状态。
- 修复停滞的参与者或上游依赖,不要把等待者当作根因。
源码证据
- PostgreSQL 18.6 · src/backend/access/transam/xlog.c:7228 —
WAIT_EVENT_CHECKPOINT_DELAY_COMPLETE - PostgreSQL 18.6 · src/backend/utils/activity/wait_event_names.txt:115 —
CHECKPOINT_DELAY_COMPLETE
关联控制项与信号
7.11 - IPC: CheckpointDelayStart
CheckpointDelayStart
版本PG 17-18
证据2 个源码位置
官方描述译文
等待后端解除对检查点启动的阻塞。
| PG 13 | PG 14 | PG 15 | PG 16 | PG 17 | PG 18 |
|---|---|---|---|---|---|
| — | — | — | — | ✓ | ✓ |
触发机制
WAIT_EVENT_CHECKPOINT_DELAY_START 位于 src/backend/access/transam/xlog.c:7211,是经 grep 核验的报告路径。公共身份/资源映射位于 src/backend/utils/activity/wait_event_names.txt:116。探针覆盖的操作是:等待后端解除对检查点启动的阻塞。CheckpointDelayStart 路径已经到达进程协调点,会休眠到对端、worker、屏障、队列或复制阶段发出进展信号。
正常还是麻烦?
- 正常: 只要所有参与者都在继续推进,短暂汇合就属正常。
- 需要调查: 同一阶段连续三次采样仍存在、预期对端缺失或被阻塞,或队列及其依赖者停止推进时,应当调查。
诊断 SQL
处置建议
- 确认事件所指的对端或阶段。
- 检查该参与者的等待、错误与进展状态。
- 修复停滞的参与者或上游依赖,不要把等待者当作根因。
源码证据
- PostgreSQL 18.6 · src/backend/access/transam/xlog.c:7211 —
WAIT_EVENT_CHECKPOINT_DELAY_START - PostgreSQL 18.6 · src/backend/utils/activity/wait_event_names.txt:116 —
CHECKPOINT_DELAY_START
关联控制项与信号
7.12 - IPC: CheckpointDone
CheckpointDone
版本PG 13-18
证据2 个源码位置
官方描述译文
等待检查点完成。
| PG 13 | PG 14 | PG 15 | PG 16 | PG 17 | PG 18 |
|---|---|---|---|---|---|
| ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
触发机制
WAIT_EVENT_CHECKPOINT_DONE 位于 src/backend/postmaster/checkpointer.c:1121,是经 grep 核验的报告路径。公共身份/资源映射位于 src/backend/utils/activity/wait_event_names.txt:117。探针覆盖的操作是:等待检查点完成。CheckpointDone 路径已经到达进程协调点,会休眠到对端、worker、屏障、队列或复制阶段发出进展信号。
正常还是麻烦?
- 正常: 只要所有参与者都在继续推进,短暂汇合就属正常。
- 需要调查: 同一阶段连续三次采样仍存在、预期对端缺失或被阻塞,或队列及其依赖者停止推进时,应当调查。
诊断 SQL
处置建议
- 确认事件所指的对端或阶段。
- 检查该参与者的等待、错误与进展状态。
- 修复停滞的参与者或上游依赖,不要把等待者当作根因。
源码证据
- PostgreSQL 18.6 · src/backend/postmaster/checkpointer.c:1121 —
WAIT_EVENT_CHECKPOINT_DONE - PostgreSQL 18.6 · src/backend/utils/activity/wait_event_names.txt:117 —
CHECKPOINT_DONE
关联控制项与信号
7.13 - IPC: CheckpointStart
CheckpointStart
版本PG 13-18
证据2 个源码位置
官方描述译文
等待检查点启动。
| PG 13 | PG 14 | PG 15 | PG 16 | PG 17 | PG 18 |
|---|---|---|---|---|---|
| ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
触发机制
WAIT_EVENT_CHECKPOINT_START 位于 src/backend/postmaster/checkpointer.c:1100,是经 grep 核验的报告路径。公共身份/资源映射位于 src/backend/utils/activity/wait_event_names.txt:118。探针覆盖的操作是:等待检查点启动。CheckpointStart 路径已经到达进程协调点,会休眠到对端、worker、屏障、队列或复制阶段发出进展信号。
正常还是麻烦?
- 正常: 只要所有参与者都在继续推进,短暂汇合就属正常。
- 需要调查: 同一阶段连续三次采样仍存在、预期对端缺失或被阻塞,或队列及其依赖者停止推进时,应当调查。
诊断 SQL
处置建议
- 确认事件所指的对端或阶段。
- 检查该参与者的等待、错误与进展状态。
- 修复停滞的参与者或上游依赖,不要把等待者当作根因。
源码证据
- PostgreSQL 18.6 · src/backend/postmaster/checkpointer.c:1100 —
WAIT_EVENT_CHECKPOINT_START - PostgreSQL 18.6 · src/backend/utils/activity/wait_event_names.txt:118 —
CHECKPOINT_START
关联控制项与信号
7.14 - IPC: ExecuteGather
ExecuteGather
版本PG 13-18
证据2 个源码位置
官方描述译文
等待执行 Gather 计划节点时来自子进程的活动。
| PG 13 | PG 14 | PG 15 | PG 16 | PG 17 | PG 18 |
|---|---|---|---|---|---|
| ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
触发机制
WAIT_EVENT_EXECUTE_GATHER 位于 src/backend/executor/nodeGather.c:386,是经 grep 核验的报告路径。公共身份/资源映射位于 src/backend/utils/activity/wait_event_names.txt:119。探针覆盖的操作是:等待执行 Gather 计划节点时来自子进程的活动。ExecuteGather 路径已经到达进程协调点,会休眠到对端、worker、屏障、队列或复制阶段发出进展信号。
正常还是麻烦?
- 正常: 只要所有参与者都在继续推进,短暂汇合就属正常。
- 需要调查: 同一阶段连续三次采样仍存在、预期对端缺失或被阻塞,或队列及其依赖者停止推进时,应当调查。
诊断 SQL
处置建议
- 确认事件所指的对端或阶段。
- 检查该参与者的等待、错误与进展状态。
- 修复停滞的参与者或上游依赖,不要把等待者当作根因。
源码证据
- PostgreSQL 18.6 · src/backend/executor/nodeGather.c:386 —
WAIT_EVENT_EXECUTE_GATHER - PostgreSQL 18.6 · src/backend/utils/activity/wait_event_names.txt:119 —
EXECUTE_GATHER
关联控制项与信号
- GUC: 无直接关联项。
- 指标: [metric:waiting_sessions] · [metric:wait_event_share]
7.15 - IPC: HashBatchAllocate
HashBatchAllocate
版本PG 13-18
证据2 个源码位置
官方描述译文
等待被选出的 Parallel Hash 参与者分配哈希表。
| PG 13 | PG 14 | PG 15 | PG 16 | PG 17 | PG 18 |
|---|---|---|---|---|---|
| ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
触发机制
WAIT_EVENT_HASH_BATCH_ALLOCATE 位于 src/backend/executor/nodeHashjoin.c:1321,是经 grep 核验的报告路径。公共身份/资源映射位于 src/backend/utils/activity/wait_event_names.txt:120。探针覆盖的操作是:等待被选出的 Parallel Hash 参与者分配哈希表。HashBatchAllocate 路径已经到达进程协调点,会休眠到对端、worker、屏障、队列或复制阶段发出进展信号。
正常还是麻烦?
- 正常: 只要所有参与者都在继续推进,短暂汇合就属正常。
- 需要调查: 同一阶段连续三次采样仍存在、预期对端缺失或被阻塞,或队列及其依赖者停止推进时,应当调查。
诊断 SQL
处置建议
- 确认事件所指的对端或阶段。
- 检查该参与者的等待、错误与进展状态。
- 修复停滞的参与者或上游依赖,不要把等待者当作根因。
源码证据
- PostgreSQL 18.6 · src/backend/executor/nodeHashjoin.c:1321 —
WAIT_EVENT_HASH_BATCH_ALLOCATE - PostgreSQL 18.6 · src/backend/utils/activity/wait_event_names.txt:120 —
HASH_BATCH_ALLOCATE
关联控制项与信号
- GUC: 无直接关联项。
- 指标: [metric:waiting_sessions] · [metric:wait_event_share]
7.16 - IPC: HashBatchElect
HashBatchElect
版本PG 13-18
证据2 个源码位置
官方描述译文
等待选出一个负责分配哈希表的 Parallel Hash 参与者。
| PG 13 | PG 14 | PG 15 | PG 16 | PG 17 | PG 18 |
|---|---|---|---|---|---|
| ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
触发机制
WAIT_EVENT_HASH_BATCH_ELECT 位于 src/backend/executor/nodeHashjoin.c:1314,是经 grep 核验的报告路径。公共身份/资源映射位于 src/backend/utils/activity/wait_event_names.txt:121。探针覆盖的操作是:等待选出一个负责分配哈希表的 Parallel Hash 参与者。HashBatchElect 路径已经到达进程协调点,会休眠到对端、worker、屏障、队列或复制阶段发出进展信号。
正常还是麻烦?
- 正常: 只要所有参与者都在继续推进,短暂汇合就属正常。
- 需要调查: 同一阶段连续三次采样仍存在、预期对端缺失或被阻塞,或队列及其依赖者停止推进时,应当调查。
诊断 SQL
处置建议
- 确认事件所指的对端或阶段。
- 检查该参与者的等待、错误与进展状态。
- 修复停滞的参与者或上游依赖,不要把等待者当作根因。
源码证据
- PostgreSQL 18.6 · src/backend/executor/nodeHashjoin.c:1314 —
WAIT_EVENT_HASH_BATCH_ELECT - PostgreSQL 18.6 · src/backend/utils/activity/wait_event_names.txt:121 —
HASH_BATCH_ELECT
关联控制项与信号
- GUC: 无直接关联项。
- 指标: [metric:waiting_sessions] · [metric:wait_event_share]
7.17 - IPC: HashBatchLoad
HashBatchLoad
版本PG 13-18
证据2 个源码位置
官方描述译文
等待其他 Parallel Hash 参与者完成哈希表加载。
| PG 13 | PG 14 | PG 15 | PG 16 | PG 17 | PG 18 |
|---|---|---|---|---|---|
| ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
触发机制
WAIT_EVENT_HASH_BATCH_LOAD 位于 src/backend/executor/nodeHashjoin.c:1341,是经 grep 核验的报告路径。公共身份/资源映射位于 src/backend/utils/activity/wait_event_names.txt:122。探针覆盖的操作是:等待其他 Parallel Hash 参与者完成哈希表加载。HashBatchLoad 路径已经到达进程协调点,会休眠到对端、worker、屏障、队列或复制阶段发出进展信号。
正常还是麻烦?
- 正常: 只要所有参与者都在继续推进,短暂汇合就属正常。
- 需要调查: 同一阶段连续三次采样仍存在、预期对端缺失或被阻塞,或队列及其依赖者停止推进时,应当调查。
诊断 SQL
处置建议
- 确认事件所指的对端或阶段。
- 检查该参与者的等待、错误与进展状态。
- 修复停滞的参与者或上游依赖,不要把等待者当作根因。
源码证据
- PostgreSQL 18.6 · src/backend/executor/nodeHashjoin.c:1341 —
WAIT_EVENT_HASH_BATCH_LOAD - PostgreSQL 18.6 · src/backend/utils/activity/wait_event_names.txt:122 —
HASH_BATCH_LOAD
关联控制项与信号
- GUC: 无直接关联项。
- 指标: [metric:waiting_sessions] · [metric:wait_event_share]
7.18 - IPC: HashBuildAllocate
HashBuildAllocate
版本PG 13-18
证据2 个源码位置
官方描述译文
等待被选出的 Parallel Hash 参与者分配初始哈希表。
| PG 13 | PG 14 | PG 15 | PG 16 | PG 17 | PG 18 |
|---|---|---|---|---|---|
| ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
触发机制
WAIT_EVENT_HASH_BUILD_ALLOCATE 位于 src/backend/executor/nodeHash.c:261,是经 grep 核验的报告路径。公共身份/资源映射位于 src/backend/utils/activity/wait_event_names.txt:123。探针覆盖的操作是:等待被选出的 Parallel Hash 参与者分配初始哈希表。HashBuildAllocate 路径已经到达进程协调点,会休眠到对端、worker、屏障、队列或复制阶段发出进展信号。
正常还是麻烦?
- 正常: 只要所有参与者都在继续推进,短暂汇合就属正常。
- 需要调查: 同一阶段连续三次采样仍存在、预期对端缺失或被阻塞,或队列及其依赖者停止推进时,应当调查。
诊断 SQL
处置建议
- 确认事件所指的对端或阶段。
- 检查该参与者的等待、错误与进展状态。
- 修复停滞的参与者或上游依赖,不要把等待者当作根因。
源码证据
- PostgreSQL 18.6 · src/backend/executor/nodeHash.c:261 —
WAIT_EVENT_HASH_BUILD_ALLOCATE - PostgreSQL 18.6 · src/backend/utils/activity/wait_event_names.txt:123 —
HASH_BUILD_ALLOCATE
关联控制项与信号
- GUC: 无直接关联项。
- 指标: [metric:waiting_sessions] · [metric:wait_event_share]
7.19 - IPC: HashBuildElect
HashBuildElect
版本PG 13-18
证据2 个源码位置
官方描述译文
等待选出一个负责分配初始哈希表的 Parallel Hash 参与者。
| PG 13 | PG 14 | PG 15 | PG 16 | PG 17 | PG 18 |
|---|---|---|---|---|---|
| ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
触发机制
WAIT_EVENT_HASH_BUILD_ELECT 位于 src/backend/executor/nodeHash.c:598,是经 grep 核验的报告路径。公共身份/资源映射位于 src/backend/utils/activity/wait_event_names.txt:124。探针覆盖的操作是:等待选出一个负责分配初始哈希表的 Parallel Hash 参与者。HashBuildElect 路径已经到达进程协调点,会休眠到对端、worker、屏障、队列或复制阶段发出进展信号。
正常还是麻烦?
- 正常: 只要所有参与者都在继续推进,短暂汇合就属正常。
- 需要调查: 同一阶段连续三次采样仍存在、预期对端缺失或被阻塞,或队列及其依赖者停止推进时,应当调查。
诊断 SQL
处置建议
- 确认事件所指的对端或阶段。
- 检查该参与者的等待、错误与进展状态。
- 修复停滞的参与者或上游依赖,不要把等待者当作根因。
源码证据
- PostgreSQL 18.6 · src/backend/executor/nodeHash.c:598 —
WAIT_EVENT_HASH_BUILD_ELECT - PostgreSQL 18.6 · src/backend/utils/activity/wait_event_names.txt:124 —
HASH_BUILD_ELECT
关联控制项与信号
- GUC: 无直接关联项。
- 指标: [metric:waiting_sessions] · [metric:wait_event_share]
7.20 - IPC: HashBuildHashInner
HashBuildHashInner
版本PG 13-18
证据2 个源码位置
官方描述译文
等待其他 Parallel Hash 参与者完成对 inner relation 的哈希处理。
| PG 13 | PG 14 | PG 15 | PG 16 | PG 17 | PG 18 |
|---|---|---|---|---|---|
| ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
触发机制
WAIT_EVENT_HASH_BUILD_HASH_INNER 位于 src/backend/executor/nodeHash.c:324,是经 grep 核验的报告路径。公共身份/资源映射位于 src/backend/utils/activity/wait_event_names.txt:125。探针覆盖的操作是:等待其他 Parallel Hash 参与者完成对 inner relation 的哈希处理。HashBuildHashInner 路径已经到达进程协调点,会休眠到对端、worker、屏障、队列或复制阶段发出进展信号。
正常还是麻烦?
- 正常: 只要所有参与者都在继续推进,短暂汇合就属正常。
- 需要调查: 同一阶段连续三次采样仍存在、预期对端缺失或被阻塞,或队列及其依赖者停止推进时,应当调查。
诊断 SQL
处置建议
- 确认事件所指的对端或阶段。
- 检查该参与者的等待、错误与进展状态。
- 修复停滞的参与者或上游依赖,不要把等待者当作根因。
源码证据
- PostgreSQL 18.6 · src/backend/executor/nodeHash.c:324 —
WAIT_EVENT_HASH_BUILD_HASH_INNER - PostgreSQL 18.6 · src/backend/utils/activity/wait_event_names.txt:125 —
HASH_BUILD_HASH_INNER
关联控制项与信号
- GUC: 无直接关联项。
- 指标: [metric:waiting_sessions] · [metric:wait_event_share]
7.21 - IPC: HashBuildHashOuter
HashBuildHashOuter
版本PG 13-18
证据2 个源码位置
官方描述译文
等待其他 Parallel Hash 参与者完成对 outer relation 的分区。
| PG 13 | PG 14 | PG 15 | PG 16 | PG 17 | PG 18 |
|---|---|---|---|---|---|
| ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
触发机制
WAIT_EVENT_HASH_BUILD_HASH_OUTER 位于 src/backend/executor/nodeHashjoin.c:397,是经 grep 核验的报告路径。公共身份/资源映射位于 src/backend/utils/activity/wait_event_names.txt:126。探针覆盖的操作是:等待其他 Parallel Hash 参与者完成对 outer relation 的分区。HashBuildHashOuter 路径已经到达进程协调点,会休眠到对端、worker、屏障、队列或复制阶段发出进展信号。
正常还是麻烦?
- 正常: 只要所有参与者都在继续推进,短暂汇合就属正常。
- 需要调查: 同一阶段连续三次采样仍存在、预期对端缺失或被阻塞,或队列及其依赖者停止推进时,应当调查。
诊断 SQL
处置建议
- 确认事件所指的对端或阶段。
- 检查该参与者的等待、错误与进展状态。
- 修复停滞的参与者或上游依赖,不要把等待者当作根因。
源码证据
- PostgreSQL 18.6 · src/backend/executor/nodeHashjoin.c:397 —
WAIT_EVENT_HASH_BUILD_HASH_OUTER - PostgreSQL 18.6 · src/backend/utils/activity/wait_event_names.txt:126 —
HASH_BUILD_HASH_OUTER
关联控制项与信号
- GUC: 无直接关联项。
- 指标: [metric:waiting_sessions] · [metric:wait_event_share]
7.22 - IPC: HashGrowBatchesDecide
HashGrowBatchesDecide
版本PG 13-18
证据2 个源码位置
官方描述译文
等待选出一个 Parallel Hash 参与者,以决定后续 batch 扩容。
| PG 13 | PG 14 | PG 15 | PG 16 | PG 17 | PG 18 |
|---|---|---|---|---|---|
| ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
触发机制
WAIT_EVENT_HASH_GROW_BATCHES_DECIDE 位于 src/backend/executor/nodeHash.c:1363,是经 grep 核验的报告路径。公共身份/资源映射位于 src/backend/utils/activity/wait_event_names.txt:127。探针覆盖的操作是:等待选出一个 Parallel Hash 参与者,以决定后续 batch 扩容。HashGrowBatchesDecide 路径已经到达进程协调点,会休眠到对端、worker、屏障、队列或复制阶段发出进展信号。
正常还是麻烦?
- 正常: 只要所有参与者都在继续推进,短暂汇合就属正常。
- 需要调查: 同一阶段连续三次采样仍存在、预期对端缺失或被阻塞,或队列及其依赖者停止推进时,应当调查。
诊断 SQL
处置建议
- 确认事件所指的对端或阶段。
- 检查该参与者的等待、错误与进展状态。
- 修复停滞的参与者或上游依赖,不要把等待者当作根因。
源码证据
- PostgreSQL 18.6 · src/backend/executor/nodeHash.c:1363 —
WAIT_EVENT_HASH_GROW_BATCHES_DECIDE - PostgreSQL 18.6 · src/backend/utils/activity/wait_event_names.txt:127 —
HASH_GROW_BATCHES_DECIDE
关联控制项与信号
- GUC: 无直接关联项。
- 指标: [metric:waiting_sessions] · [metric:wait_event_share]
7.23 - IPC: HashGrowBatchesElect
HashGrowBatchesElect
版本PG 13-18
证据2 个源码位置
官方描述译文
等待选出一个负责分配更多 batch 的 Parallel Hash 参与者。
| PG 13 | PG 14 | PG 15 | PG 16 | PG 17 | PG 18 |
|---|---|---|---|---|---|
| ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
触发机制
WAIT_EVENT_HASH_GROW_BATCHES_ELECT 位于 src/backend/executor/nodeHash.c:1220,是经 grep 核验的报告路径。公共身份/资源映射位于 src/backend/utils/activity/wait_event_names.txt:128。探针覆盖的操作是:等待选出一个负责分配更多 batch 的 Parallel Hash 参与者。HashGrowBatchesElect 路径已经到达进程协调点,会休眠到对端、worker、屏障、队列或复制阶段发出进展信号。
正常还是麻烦?
- 正常: 只要所有参与者都在继续推进,短暂汇合就属正常。
- 需要调查: 同一阶段连续三次采样仍存在、预期对端缺失或被阻塞,或队列及其依赖者停止推进时,应当调查。
诊断 SQL
处置建议
- 确认事件所指的对端或阶段。
- 检查该参与者的等待、错误与进展状态。
- 修复停滞的参与者或上游依赖,不要把等待者当作根因。
源码证据
- PostgreSQL 18.6 · src/backend/executor/nodeHash.c:1220 —
WAIT_EVENT_HASH_GROW_BATCHES_ELECT - PostgreSQL 18.6 · src/backend/utils/activity/wait_event_names.txt:128 —
HASH_GROW_BATCHES_ELECT
关联控制项与信号
- GUC: 无直接关联项。
- 指标: [metric:waiting_sessions] · [metric:wait_event_share]
7.24 - IPC: HashGrowBatchesFinish
HashGrowBatchesFinish
版本PG 13-18
证据2 个源码位置
官方描述译文
等待被选出的 Parallel Hash 参与者决定后续 batch 扩容。
| PG 13 | PG 14 | PG 15 | PG 16 | PG 17 | PG 18 |
|---|---|---|---|---|---|
| ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
触发机制
WAIT_EVENT_HASH_GROW_BATCHES_FINISH 位于 src/backend/executor/nodeHash.c:1420,是经 grep 核验的报告路径。公共身份/资源映射位于 src/backend/utils/activity/wait_event_names.txt:129。探针覆盖的操作是:等待被选出的 Parallel Hash 参与者决定后续 batch 扩容。HashGrowBatchesFinish 路径已经到达进程协调点,会休眠到对端、worker、屏障、队列或复制阶段发出进展信号。
正常还是麻烦?
- 正常: 只要所有参与者都在继续推进,短暂汇合就属正常。
- 需要调查: 同一阶段连续三次采样仍存在、预期对端缺失或被阻塞,或队列及其依赖者停止推进时,应当调查。
诊断 SQL
处置建议
- 确认事件所指的对端或阶段。
- 检查该参与者的等待、错误与进展状态。
- 修复停滞的参与者或上游依赖,不要把等待者当作根因。
源码证据
- PostgreSQL 18.6 · src/backend/executor/nodeHash.c:1420 —
WAIT_EVENT_HASH_GROW_BATCHES_FINISH - PostgreSQL 18.6 · src/backend/utils/activity/wait_event_names.txt:129 —
HASH_GROW_BATCHES_FINISH
关联控制项与信号
- GUC: 无直接关联项。
- 指标: [metric:waiting_sessions] · [metric:wait_event_share]
7.25 - IPC: HashGrowBatchesReallocate
HashGrowBatchesReallocate
版本PG 16-18
证据4 个源码位置
官方描述译文
等待被选出的 Parallel Hash 参与者分配更多 batch。
| PG 13 | PG 14 | PG 15 | PG 16 | PG 17 | PG 18 |
|---|---|---|---|---|---|
| — | — | — | ✓ | ✓ | ✓ |
历史名称:IPC/HashGrowBatchesAllocate (PG 13-15)
触发机制
WAIT_EVENT_HASH_GROW_BATCHES_ALLOCATE 位于 src/backend/executor/nodeHash.c:1229,是经 grep 核验的报告路径。公共身份/资源映射位于 src/backend/utils/activity/wait_event.c:368。探针覆盖的操作是:等待被选出的 Parallel Hash 参与者分配更多 batch。HashGrowBatchesReallocate 路径已经到达进程协调点,会休眠到对端、worker、屏障、队列或复制阶段发出进展信号。
正常还是麻烦?
- 正常: 只要所有参与者都在继续推进,短暂汇合就属正常。
- 需要调查: 同一阶段连续三次采样仍存在、预期对端缺失或被阻塞,或队列及其依赖者停止推进时,应当调查。
诊断 SQL
处置建议
- 确认事件所指的对端或阶段。
- 检查该参与者的等待、错误与进展状态。
- 修复停滞的参与者或上游依赖,不要把等待者当作根因。
源码证据
- PostgreSQL 15.19 · src/backend/executor/nodeHash.c:1229 —
WAIT_EVENT_HASH_GROW_BATCHES_ALLOCATE - PostgreSQL 15.19 · src/backend/utils/activity/wait_event.c:368 —
HashGrowBatchesAllocate - PostgreSQL 18.6 · src/backend/executor/nodeHash.c:1339 —
WAIT_EVENT_HASH_GROW_BATCHES_REALLOCATE - PostgreSQL 18.6 · src/backend/utils/activity/wait_event_names.txt:130 —
HASH_GROW_BATCHES_REALLOCATE
关联控制项与信号
- GUC: 无直接关联项。
- 指标: [metric:waiting_sessions] · [metric:wait_event_share]
7.26 - IPC: HashGrowBatchesRepartition
HashGrowBatchesRepartition
版本PG 13-18
证据2 个源码位置
官方描述译文
等待其他 Parallel Hash 参与者完成重新分区。
| PG 13 | PG 14 | PG 15 | PG 16 | PG 17 | PG 18 |
|---|---|---|---|---|---|
| ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
触发机制
WAIT_EVENT_HASH_GROW_BATCHES_REPARTITION 位于 src/backend/executor/nodeHash.c:1352,是经 grep 核验的报告路径。公共身份/资源映射位于 src/backend/utils/activity/wait_event_names.txt:131。探针覆盖的操作是:等待其他 Parallel Hash 参与者完成重新分区。HashGrowBatchesRepartition 路径已经到达进程协调点,会休眠到对端、worker、屏障、队列或复制阶段发出进展信号。
正常还是麻烦?
- 正常: 只要所有参与者都在继续推进,短暂汇合就属正常。
- 需要调查: 同一阶段连续三次采样仍存在、预期对端缺失或被阻塞,或队列及其依赖者停止推进时,应当调查。
诊断 SQL
处置建议
- 确认事件所指的对端或阶段。
- 检查该参与者的等待、错误与进展状态。
- 修复停滞的参与者或上游依赖,不要把等待者当作根因。
源码证据
- PostgreSQL 18.6 · src/backend/executor/nodeHash.c:1352 —
WAIT_EVENT_HASH_GROW_BATCHES_REPARTITION - PostgreSQL 18.6 · src/backend/utils/activity/wait_event_names.txt:131 —
HASH_GROW_BATCHES_REPARTITION
关联控制项与信号
- GUC: 无直接关联项。
- 指标: [metric:waiting_sessions] · [metric:wait_event_share]
7.27 - IPC: HashGrowBucketsElect
HashGrowBucketsElect
版本PG 13-18
证据2 个源码位置
官方描述译文
等待选出一个负责分配更多 bucket 的 Parallel Hash 参与者。
| PG 13 | PG 14 | PG 15 | PG 16 | PG 17 | PG 18 |
|---|---|---|---|---|---|
| ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
触发机制
WAIT_EVENT_HASH_GROW_BUCKETS_ELECT 位于 src/backend/executor/nodeHash.c:1669,是经 grep 核验的报告路径。公共身份/资源映射位于 src/backend/utils/activity/wait_event_names.txt:132。探针覆盖的操作是:等待选出一个负责分配更多 bucket 的 Parallel Hash 参与者。HashGrowBucketsElect 路径已经到达进程协调点,会休眠到对端、worker、屏障、队列或复制阶段发出进展信号。
正常还是麻烦?
- 正常: 只要所有参与者都在继续推进,短暂汇合就属正常。
- 需要调查: 同一阶段连续三次采样仍存在、预期对端缺失或被阻塞,或队列及其依赖者停止推进时,应当调查。
诊断 SQL
处置建议
- 确认事件所指的对端或阶段。
- 检查该参与者的等待、错误与进展状态。
- 修复停滞的参与者或上游依赖,不要把等待者当作根因。
源码证据
- PostgreSQL 18.6 · src/backend/executor/nodeHash.c:1669 —
WAIT_EVENT_HASH_GROW_BUCKETS_ELECT - PostgreSQL 18.6 · src/backend/utils/activity/wait_event_names.txt:132 —
HASH_GROW_BUCKETS_ELECT
关联控制项与信号
- GUC: 无直接关联项。
- 指标: [metric:waiting_sessions] · [metric:wait_event_share]
7.28 - IPC: HashGrowBucketsReallocate
HashGrowBucketsReallocate
版本PG 16-18
证据4 个源码位置
官方描述译文
等待被选出的 Parallel Hash 参与者完成更多 bucket 的分配。
| PG 13 | PG 14 | PG 15 | PG 16 | PG 17 | PG 18 |
|---|---|---|---|---|---|
| — | — | — | ✓ | ✓ | ✓ |
历史名称:IPC/HashGrowBucketsAllocate (PG 13-15)
触发机制
WAIT_EVENT_HASH_GROW_BUCKETS_ALLOCATE 位于 src/backend/executor/nodeHash.c:1588,是经 grep 核验的报告路径。公共身份/资源映射位于 src/backend/utils/activity/wait_event.c:383。探针覆盖的操作是:等待被选出的 Parallel Hash 参与者完成更多 bucket 的分配。HashGrowBucketsReallocate 路径已经到达进程协调点,会休眠到对端、worker、屏障、队列或复制阶段发出进展信号。
正常还是麻烦?
- 正常: 只要所有参与者都在继续推进,短暂汇合就属正常。
- 需要调查: 同一阶段连续三次采样仍存在、预期对端缺失或被阻塞,或队列及其依赖者停止推进时,应当调查。
诊断 SQL
处置建议
- 确认事件所指的对端或阶段。
- 检查该参与者的等待、错误与进展状态。
- 修复停滞的参与者或上游依赖,不要把等待者当作根因。
源码证据
- PostgreSQL 15.19 · src/backend/executor/nodeHash.c:1588 —
WAIT_EVENT_HASH_GROW_BUCKETS_ALLOCATE - PostgreSQL 15.19 · src/backend/utils/activity/wait_event.c:383 —
HashGrowBucketsAllocate - PostgreSQL 18.6 · src/backend/executor/nodeHash.c:1698 —
WAIT_EVENT_HASH_GROW_BUCKETS_REALLOCATE - PostgreSQL 18.6 · src/backend/utils/activity/wait_event_names.txt:133 —
HASH_GROW_BUCKETS_REALLOCATE
关联控制项与信号
- GUC: 无直接关联项。
- 指标: [metric:waiting_sessions] · [metric:wait_event_share]
7.29 - IPC: HashGrowBucketsReinsert
HashGrowBucketsReinsert
版本PG 13-18
证据2 个源码位置
官方描述译文
等待其他 Parallel Hash 参与者完成将元组插入新 bucket。
| PG 13 | PG 14 | PG 15 | PG 16 | PG 17 | PG 18 |
|---|---|---|---|---|---|
| ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
触发机制
WAIT_EVENT_HASH_GROW_BUCKETS_REINSERT 位于 src/backend/executor/nodeHash.c:1733,是经 grep 核验的报告路径。公共身份/资源映射位于 src/backend/utils/activity/wait_event_names.txt:134。探针覆盖的操作是:等待其他 Parallel Hash 参与者完成将元组插入新 bucket。HashGrowBucketsReinsert 路径已经到达进程协调点,会休眠到对端、worker、屏障、队列或复制阶段发出进展信号。
正常还是麻烦?
- 正常: 只要所有参与者都在继续推进,短暂汇合就属正常。
- 需要调查: 同一阶段连续三次采样仍存在、预期对端缺失或被阻塞,或队列及其依赖者停止推进时,应当调查。
诊断 SQL
处置建议
- 确认事件所指的对端或阶段。
- 检查该参与者的等待、错误与进展状态。
- 修复停滞的参与者或上游依赖,不要把等待者当作根因。
源码证据
- PostgreSQL 18.6 · src/backend/executor/nodeHash.c:1733 —
WAIT_EVENT_HASH_GROW_BUCKETS_REINSERT - PostgreSQL 18.6 · src/backend/utils/activity/wait_event_names.txt:134 —
HASH_GROW_BUCKETS_REINSERT
关联控制项与信号
- GUC: 无直接关联项。
- 指标: [metric:waiting_sessions] · [metric:wait_event_share]
7.30 - IPC: LogicalApplySendData
LogicalApplySendData
版本PG 16-18
证据2 个源码位置
官方描述译文
等待逻辑复制 leader apply 进程向 parallel apply 进程发送数据。
| PG 13 | PG 14 | PG 15 | PG 16 | PG 17 | PG 18 |
|---|---|---|---|---|---|
| — | — | — | ✓ | ✓ | ✓ |
触发机制
WAIT_EVENT_LOGICAL_APPLY_SEND_DATA 位于 src/backend/replication/logical/applyparallelworker.c:1204,是经 grep 核验的报告路径。公共身份/资源映射位于 src/backend/utils/activity/wait_event_names.txt:135。探针覆盖的操作是:等待逻辑复制 leader apply 进程向 parallel apply 进程发送数据。LogicalApplySendData 路径已经到达进程协调点,会休眠到对端、worker、屏障、队列或复制阶段发出进展信号。
正常还是麻烦?
- 正常: 只要所有参与者都在继续推进,短暂汇合就属正常。
- 需要调查: 同一阶段连续三次采样仍存在、预期对端缺失或被阻塞,或队列及其依赖者停止推进时,应当调查。
诊断 SQL
处置建议
- 确认事件所指的对端或阶段。
- 检查该参与者的等待、错误与进展状态。
- 修复停滞的参与者或上游依赖,不要把等待者当作根因。
源码证据
- PostgreSQL 18.6 · src/backend/replication/logical/applyparallelworker.c:1204 —
WAIT_EVENT_LOGICAL_APPLY_SEND_DATA - PostgreSQL 18.6 · src/backend/utils/activity/wait_event_names.txt:135 —
LOGICAL_APPLY_SEND_DATA
关联控制项与信号
- GUC: 无直接关联项。
- 指标: [metric:waiting_sessions] · [metric:wait_event_share]
7.31 - IPC: LogicalParallelApplyStateChange
LogicalParallelApplyStateChange
版本PG 16-18
证据2 个源码位置
官方描述译文
等待逻辑复制 parallel apply 进程改变状态。
| PG 13 | PG 14 | PG 15 | PG 16 | PG 17 | PG 18 |
|---|---|---|---|---|---|
| — | — | — | ✓ | ✓ | ✓ |
触发机制
WAIT_EVENT_LOGICAL_PARALLEL_APPLY_STATE_CHANGE 位于 src/backend/replication/logical/applyparallelworker.c:1276,是经 grep 核验的报告路径。公共身份/资源映射位于 src/backend/utils/activity/wait_event_names.txt:136。探针覆盖的操作是:等待逻辑复制 parallel apply 进程改变状态。LogicalParallelApplyStateChange 路径已经到达进程协调点,会休眠到对端、worker、屏障、队列或复制阶段发出进展信号。
正常还是麻烦?
- 正常: 只要所有参与者都在继续推进,短暂汇合就属正常。
- 需要调查: 同一阶段连续三次采样仍存在、预期对端缺失或被阻塞,或队列及其依赖者停止推进时,应当调查。
诊断 SQL
处置建议
- 确认事件所指的对端或阶段。
- 检查该参与者的等待、错误与进展状态。
- 修复停滞的参与者或上游依赖,不要把等待者当作根因。
源码证据
- PostgreSQL 18.6 · src/backend/replication/logical/applyparallelworker.c:1276 —
WAIT_EVENT_LOGICAL_PARALLEL_APPLY_STATE_CHANGE - PostgreSQL 18.6 · src/backend/utils/activity/wait_event_names.txt:136 —
LOGICAL_PARALLEL_APPLY_STATE_CHANGE
关联控制项与信号
- GUC: 无直接关联项。
- 指标: [metric:waiting_sessions] · [metric:wait_event_share]
7.32 - IPC: LogicalSyncData
LogicalSyncData
版本PG 13-18
证据2 个源码位置
官方描述译文
等待逻辑复制远端服务器发送用于初始表同步的数据。
| PG 13 | PG 14 | PG 15 | PG 16 | PG 17 | PG 18 |
|---|---|---|---|---|---|
| ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
触发机制
WAIT_EVENT_LOGICAL_SYNC_DATA 位于 src/backend/replication/logical/tablesync.c:807,是经 grep 核验的报告路径。公共身份/资源映射位于 src/backend/utils/activity/wait_event_names.txt:137。探针覆盖的操作是:等待逻辑复制远端服务器发送用于初始表同步的数据。LogicalSyncData 路径已经到达进程协调点,会休眠到对端、worker、屏障、队列或复制阶段发出进展信号。
正常还是麻烦?
- 正常: 只要所有参与者都在继续推进,短暂汇合就属正常。
- 需要调查: 同一阶段连续三次采样仍存在、预期对端缺失或被阻塞,或队列及其依赖者停止推进时,应当调查。
诊断 SQL
处置建议
- 确认事件所指的对端或阶段。
- 检查该参与者的等待、错误与进展状态。
- 修复停滞的参与者或上游依赖,不要把等待者当作根因。
源码证据
- PostgreSQL 18.6 · src/backend/replication/logical/tablesync.c:807 —
WAIT_EVENT_LOGICAL_SYNC_DATA - PostgreSQL 18.6 · src/backend/utils/activity/wait_event_names.txt:137 —
LOGICAL_SYNC_DATA
关联控制项与信号
7.33 - IPC: LogicalSyncStateChange
LogicalSyncStateChange
版本PG 13-18
证据2 个源码位置
官方描述译文
等待逻辑复制远端服务器改变状态。
| PG 13 | PG 14 | PG 15 | PG 16 | PG 17 | PG 18 |
|---|---|---|---|---|---|
| ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
触发机制
WAIT_EVENT_LOGICAL_SYNC_STATE_CHANGE 位于 src/backend/replication/logical/tablesync.c:214,是经 grep 核验的报告路径。公共身份/资源映射位于 src/backend/utils/activity/wait_event_names.txt:138。探针覆盖的操作是:等待逻辑复制远端服务器改变状态。LogicalSyncStateChange 路径已经到达进程协调点,会休眠到对端、worker、屏障、队列或复制阶段发出进展信号。
正常还是麻烦?
- 正常: 只要所有参与者都在继续推进,短暂汇合就属正常。
- 需要调查: 同一阶段连续三次采样仍存在、预期对端缺失或被阻塞,或队列及其依赖者停止推进时,应当调查。
诊断 SQL
处置建议
- 确认事件所指的对端或阶段。
- 检查该参与者的等待、错误与进展状态。
- 修复停滞的参与者或上游依赖,不要把等待者当作根因。
源码证据
- PostgreSQL 18.6 · src/backend/replication/logical/tablesync.c:214 —
WAIT_EVENT_LOGICAL_SYNC_STATE_CHANGE - PostgreSQL 18.6 · src/backend/utils/activity/wait_event_names.txt:138 —
LOGICAL_SYNC_STATE_CHANGE
关联控制项与信号
7.34 - IPC: MessageQueueInternal
MessageQueueInternal
版本PG 13-18
证据2 个源码位置
官方描述译文
等待另一个进程附加到共享消息队列。
| PG 13 | PG 14 | PG 15 | PG 16 | PG 17 | PG 18 |
|---|---|---|---|---|---|
| ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
触发机制
WAIT_EVENT_MESSAGE_QUEUE_INTERNAL 位于 src/backend/storage/ipc/shm_mq.c:1254,是经 grep 核验的报告路径。公共身份/资源映射位于 src/backend/utils/activity/wait_event_names.txt:139。探针覆盖的操作是:等待另一个进程附加到共享消息队列。MessageQueueInternal 路径已经到达进程协调点,会休眠到对端、worker、屏障、队列或复制阶段发出进展信号。
正常还是麻烦?
- 正常: 只要所有参与者都在继续推进,短暂汇合就属正常。
- 需要调查: 同一阶段连续三次采样仍存在、预期对端缺失或被阻塞,或队列及其依赖者停止推进时,应当调查。
诊断 SQL
处置建议
- 确认事件所指的对端或阶段。
- 检查该参与者的等待、错误与进展状态。
- 修复停滞的参与者或上游依赖,不要把等待者当作根因。
源码证据
- PostgreSQL 18.6 · src/backend/storage/ipc/shm_mq.c:1254 —
WAIT_EVENT_MESSAGE_QUEUE_INTERNAL - PostgreSQL 18.6 · src/backend/utils/activity/wait_event_names.txt:139 —
MESSAGE_QUEUE_INTERNAL
关联控制项与信号
- GUC: 无直接关联项。
- 指标: [metric:waiting_sessions] · [metric:wait_event_share]
7.35 - IPC: MessageQueuePutMessage
MessageQueuePutMessage
版本PG 13-18
证据2 个源码位置
官方描述译文
等待向共享消息队列写入协议消息。
| PG 13 | PG 14 | PG 15 | PG 16 | PG 17 | PG 18 |
|---|---|---|---|---|---|
| ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
触发机制
WAIT_EVENT_MESSAGE_QUEUE_PUT_MESSAGE 位于 src/backend/libpq/pqmq.c:185,是经 grep 核验的报告路径。公共身份/资源映射位于 src/backend/utils/activity/wait_event_names.txt:140。探针覆盖的操作是:等待向共享消息队列写入协议消息。MessageQueuePutMessage 路径已经到达进程协调点,会休眠到对端、worker、屏障、队列或复制阶段发出进展信号。
正常还是麻烦?
- 正常: 只要所有参与者都在继续推进,短暂汇合就属正常。
- 需要调查: 同一阶段连续三次采样仍存在、预期对端缺失或被阻塞,或队列及其依赖者停止推进时,应当调查。
诊断 SQL
处置建议
- 确认事件所指的对端或阶段。
- 检查该参与者的等待、错误与进展状态。
- 修复停滞的参与者或上游依赖,不要把等待者当作根因。
源码证据
- PostgreSQL 18.6 · src/backend/libpq/pqmq.c:185 —
WAIT_EVENT_MESSAGE_QUEUE_PUT_MESSAGE - PostgreSQL 18.6 · src/backend/utils/activity/wait_event_names.txt:140 —
MESSAGE_QUEUE_PUT_MESSAGE
关联控制项与信号
- GUC: 无直接关联项。
- 指标: [metric:waiting_sessions] · [metric:wait_event_share]
7.36 - IPC: MessageQueueReceive
MessageQueueReceive
版本PG 13-18
证据2 个源码位置
官方描述译文
等待从共享消息队列接收字节。
| PG 13 | PG 14 | PG 15 | PG 16 | PG 17 | PG 18 |
|---|---|---|---|---|---|
| ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
触发机制
WAIT_EVENT_MESSAGE_QUEUE_RECEIVE 位于 src/backend/storage/ipc/shm_mq.c:1165,是经 grep 核验的报告路径。公共身份/资源映射位于 src/backend/utils/activity/wait_event_names.txt:141。探针覆盖的操作是:等待从共享消息队列接收字节。MessageQueueReceive 路径已经到达进程协调点,会休眠到对端、worker、屏障、队列或复制阶段发出进展信号。
正常还是麻烦?
- 正常: 只要所有参与者都在继续推进,短暂汇合就属正常。
- 需要调查: 同一阶段连续三次采样仍存在、预期对端缺失或被阻塞,或队列及其依赖者停止推进时,应当调查。
诊断 SQL
处置建议
- 确认事件所指的对端或阶段。
- 检查该参与者的等待、错误与进展状态。
- 修复停滞的参与者或上游依赖,不要把等待者当作根因。
源码证据
- PostgreSQL 18.6 · src/backend/storage/ipc/shm_mq.c:1165 —
WAIT_EVENT_MESSAGE_QUEUE_RECEIVE - PostgreSQL 18.6 · src/backend/utils/activity/wait_event_names.txt:141 —
MESSAGE_QUEUE_RECEIVE
关联控制项与信号
- GUC: 无直接关联项。
- 指标: [metric:waiting_sessions] · [metric:wait_event_share]
7.37 - IPC: MessageQueueSend
MessageQueueSend
版本PG 13-18
证据2 个源码位置
官方描述译文
等待向共享消息队列发送字节。
| PG 13 | PG 14 | PG 15 | PG 16 | PG 17 | PG 18 |
|---|---|---|---|---|---|
| ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
触发机制
WAIT_EVENT_MESSAGE_QUEUE_SEND 位于 src/backend/storage/ipc/shm_mq.c:1019,是经 grep 核验的报告路径。公共身份/资源映射位于 src/backend/utils/activity/wait_event_names.txt:142。探针覆盖的操作是:等待向共享消息队列发送字节。MessageQueueSend 路径已经到达进程协调点,会休眠到对端、worker、屏障、队列或复制阶段发出进展信号。
正常还是麻烦?
- 正常: 只要所有参与者都在继续推进,短暂汇合就属正常。
- 需要调查: 同一阶段连续三次采样仍存在、预期对端缺失或被阻塞,或队列及其依赖者停止推进时,应当调查。
诊断 SQL
处置建议
- 确认事件所指的对端或阶段。
- 检查该参与者的等待、错误与进展状态。
- 修复停滞的参与者或上游依赖,不要把等待者当作根因。
源码证据
- PostgreSQL 18.6 · src/backend/storage/ipc/shm_mq.c:1019 —
WAIT_EVENT_MESSAGE_QUEUE_SEND - PostgreSQL 18.6 · src/backend/utils/activity/wait_event_names.txt:142 —
MESSAGE_QUEUE_SEND
关联控制项与信号
- GUC: 无直接关联项。
- 指标: [metric:waiting_sessions] · [metric:wait_event_share]
7.38 - IPC: MultixactCreation
MultixactCreation
版本PG 17-18
证据1 个源码位置
官方描述译文
等待 multixact 创建完成。
| PG 13 | PG 14 | PG 15 | PG 16 | PG 17 | PG 18 |
|---|---|---|---|---|---|
| — | — | — | — | ✓ | ✓ |
触发机制
目录中仍保留该身份,但源码审计确认在 17.8+, 18.2+ 已没有活动报告点。已知曾可触发范围:17.0-17.7, 18.0-18.1。下方定义位置作为负面证据保留;当前精确版本不会从核心代码路径发出此事件。 证据:PostgreSQL 17.8 release note、PostgreSQL 18.2 release note。
正常还是麻烦?
- 正常: 在已审计的精确版本上,不应出现活动的核心触发。
- 需要调查: 若监控仍显示它,应核对精确小版本、扩展来源,并确认样本是否陈旧或来自另一台服务器。
诊断 SQL
处置建议
- 确认事件所指的对端或阶段。
- 检查该参与者的等待、错误与进展状态。
- 修复停滞的参与者或上游依赖,不要把等待者当作根因。
源码证据
- PostgreSQL 18.6 · src/backend/utils/activity/wait_event_names.txt:143 —
MULTIXACT_CREATION
关联控制项与信号
7.39 - IPC: ParallelBitmapScan
ParallelBitmapScan
版本PG 13-18
证据2 个源码位置
官方描述译文
等待并行位图扫描完成初始化。
| PG 13 | PG 14 | PG 15 | PG 16 | PG 17 | PG 18 |
|---|---|---|---|---|---|
| ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
触发机制
WAIT_EVENT_PARALLEL_BITMAP_SCAN 位于 src/backend/executor/nodeBitmapHeapscan.c:437,是经 grep 核验的报告路径。公共身份/资源映射位于 src/backend/utils/activity/wait_event_names.txt:144。探针覆盖的操作是:等待并行位图扫描完成初始化。ParallelBitmapScan 路径已经到达进程协调点,会休眠到对端、worker、屏障、队列或复制阶段发出进展信号。
正常还是麻烦?
- 正常: 只要所有参与者都在继续推进,短暂汇合就属正常。
- 需要调查: 同一阶段连续三次采样仍存在、预期对端缺失或被阻塞,或队列及其依赖者停止推进时,应当调查。
诊断 SQL
处置建议
- 确认事件所指的对端或阶段。
- 检查该参与者的等待、错误与进展状态。
- 修复停滞的参与者或上游依赖,不要把等待者当作根因。
源码证据
- PostgreSQL 18.6 · src/backend/executor/nodeBitmapHeapscan.c:437 —
WAIT_EVENT_PARALLEL_BITMAP_SCAN - PostgreSQL 18.6 · src/backend/utils/activity/wait_event_names.txt:144 —
PARALLEL_BITMAP_SCAN
关联控制项与信号
- GUC: 无直接关联项。
- 指标: [metric:waiting_sessions] · [metric:wait_event_share]
7.40 - IPC: ParallelCreateIndexScan
ParallelCreateIndexScan
版本PG 13-18
证据2 个源码位置
官方描述译文
等待并行 CREATE INDEX 工作进程完成 heap 扫描。
| PG 13 | PG 14 | PG 15 | PG 16 | PG 17 | PG 18 |
|---|---|---|---|---|---|
| ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
触发机制
WAIT_EVENT_PARALLEL_CREATE_INDEX_SCAN 位于 src/backend/access/brin/brin.c:2600,是经 grep 核验的报告路径。公共身份/资源映射位于 src/backend/utils/activity/wait_event_names.txt:145。探针覆盖的操作是:等待并行 CREATE INDEX 工作进程完成 heap 扫描。ParallelCreateIndexScan 路径已经到达进程协调点,会休眠到对端、worker、屏障、队列或复制阶段发出进展信号。
正常还是麻烦?
- 正常: 只要所有参与者都在继续推进,短暂汇合就属正常。
- 需要调查: 同一阶段连续三次采样仍存在、预期对端缺失或被阻塞,或队列及其依赖者停止推进时,应当调查。
诊断 SQL
处置建议
- 确认事件所指的对端或阶段。
- 检查该参与者的等待、错误与进展状态。
- 修复停滞的参与者或上游依赖,不要把等待者当作根因。
源码证据
- PostgreSQL 18.6 · src/backend/access/brin/brin.c:2600 —
WAIT_EVENT_PARALLEL_CREATE_INDEX_SCAN - PostgreSQL 18.6 · src/backend/utils/activity/wait_event_names.txt:145 —
PARALLEL_CREATE_INDEX_SCAN
关联控制项与信号
- GUC: 无直接关联项。
- 指标: [metric:waiting_sessions] · [metric:wait_event_share]
7.41 - IPC: ParallelFinish
ParallelFinish
版本PG 13-18
证据2 个源码位置
官方描述译文
等待并行工作进程完成计算。
| PG 13 | PG 14 | PG 15 | PG 16 | PG 17 | PG 18 |
|---|---|---|---|---|---|
| ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
触发机制
WAIT_EVENT_PARALLEL_FINISH 位于 src/backend/access/transam/parallel.c:894,是经 grep 核验的报告路径。公共身份/资源映射位于 src/backend/utils/activity/wait_event_names.txt:146。探针覆盖的操作是:等待并行工作进程完成计算。ParallelFinish 路径已经到达进程协调点,会休眠到对端、worker、屏障、队列或复制阶段发出进展信号。
正常还是麻烦?
- 正常: 只要所有参与者都在继续推进,短暂汇合就属正常。
- 需要调查: 同一阶段连续三次采样仍存在、预期对端缺失或被阻塞,或队列及其依赖者停止推进时,应当调查。
诊断 SQL
处置建议
- 确认事件所指的对端或阶段。
- 检查该参与者的等待、错误与进展状态。
- 修复停滞的参与者或上游依赖,不要把等待者当作根因。
源码证据
- PostgreSQL 18.6 · src/backend/access/transam/parallel.c:894 —
WAIT_EVENT_PARALLEL_FINISH - PostgreSQL 18.6 · src/backend/utils/activity/wait_event_names.txt:146 —
PARALLEL_FINISH
关联控制项与信号
- GUC: 无直接关联项。
- 指标: [metric:waiting_sessions] · [metric:wait_event_share]
7.42 - IPC: ProcSignalBarrier
ProcSignalBarrier
版本PG 13-18
证据2 个源码位置
官方描述译文
等待所有后端处理完 barrier 事件。
| PG 13 | PG 14 | PG 15 | PG 16 | PG 17 | PG 18 |
|---|---|---|---|---|---|
| ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
触发机制
WAIT_EVENT_PROC_SIGNAL_BARRIER 位于 src/backend/storage/ipc/procsignal.c:458,是经 grep 核验的报告路径。公共身份/资源映射位于 src/backend/utils/activity/wait_event_names.txt:148。探针覆盖的操作是:等待所有后端处理完 barrier 事件。ProcSignalBarrier 路径已经到达进程协调点,会休眠到对端、worker、屏障、队列或复制阶段发出进展信号。
正常还是麻烦?
- 正常: 只要所有参与者都在继续推进,短暂汇合就属正常。
- 需要调查: 同一阶段连续三次采样仍存在、预期对端缺失或被阻塞,或队列及其依赖者停止推进时,应当调查。
诊断 SQL
处置建议
- 确认事件所指的对端或阶段。
- 检查该参与者的等待、错误与进展状态。
- 修复停滞的参与者或上游依赖,不要把等待者当作根因。
源码证据
- PostgreSQL 18.6 · src/backend/storage/ipc/procsignal.c:458 —
WAIT_EVENT_PROC_SIGNAL_BARRIER - PostgreSQL 18.6 · src/backend/utils/activity/wait_event_names.txt:148 —
PROC_SIGNAL_BARRIER
关联控制项与信号
- GUC: 无直接关联项。
- 指标: [metric:waiting_sessions] · [metric:wait_event_share]
7.43 - IPC: ProcarrayGroupUpdate
ProcarrayGroupUpdate
版本PG 17-18
证据4 个源码位置
官方描述译文
等待 group leader 在事务结束时清除事务 ID。
| PG 13 | PG 14 | PG 15 | PG 16 | PG 17 | PG 18 |
|---|---|---|---|---|---|
| — | — | — | — | ✓ | ✓ |
历史名称:IPC/ProcArrayGroupUpdate (PG 13-16)
触发机制
WAIT_EVENT_PROCARRAY_GROUP_UPDATE 位于 src/backend/storage/ipc/procarray.c:829,是经 grep 核验的报告路径。公共身份/资源映射位于 src/backend/utils/activity/wait_event.c:428。探针覆盖的操作是:等待 group leader 在事务结束时清除事务 ID。ProcarrayGroupUpdate 路径已经到达进程协调点,会休眠到对端、worker、屏障、队列或复制阶段发出进展信号。
正常还是麻烦?
- 正常: 只要所有参与者都在继续推进,短暂汇合就属正常。
- 需要调查: 同一阶段连续三次采样仍存在、预期对端缺失或被阻塞,或队列及其依赖者停止推进时,应当调查。
诊断 SQL
处置建议
- 确认事件所指的对端或阶段。
- 检查该参与者的等待、错误与进展状态。
- 修复停滞的参与者或上游依赖,不要把等待者当作根因。
源码证据
- PostgreSQL 16.15 · src/backend/storage/ipc/procarray.c:829 —
WAIT_EVENT_PROCARRAY_GROUP_UPDATE - PostgreSQL 16.15 · src/backend/utils/activity/wait_event.c:428 —
ProcArrayGroupUpdate - PostgreSQL 18.6 · src/backend/storage/ipc/procarray.c:827 —
WAIT_EVENT_PROCARRAY_GROUP_UPDATE - PostgreSQL 18.6 · src/backend/utils/activity/wait_event_names.txt:147 —
PROCARRAY_GROUP_UPDATE
关联控制项与信号
- GUC: 无直接关联项。
- 指标: [metric:waiting_sessions] · [metric:wait_event_share]
7.44 - IPC: Promote
Promote
版本PG 13-18
证据2 个源码位置
官方描述译文
等待备库提升。
| PG 13 | PG 14 | PG 15 | PG 16 | PG 17 | PG 18 |
|---|---|---|---|---|---|
| ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
触发机制
WAIT_EVENT_PROMOTE 位于 src/backend/access/transam/xlogfuncs.c:731,是经 grep 核验的报告路径。公共身份/资源映射位于 src/backend/utils/activity/wait_event_names.txt:149。探针覆盖的操作是:等待备库提升。Promote 路径已经到达进程协调点,会休眠到对端、worker、屏障、队列或复制阶段发出进展信号。
正常还是麻烦?
- 正常: 只要所有参与者都在继续推进,短暂汇合就属正常。
- 需要调查: 同一阶段连续三次采样仍存在、预期对端缺失或被阻塞,或队列及其依赖者停止推进时,应当调查。
诊断 SQL
处置建议
- 确认事件所指的对端或阶段。
- 检查该参与者的等待、错误与进展状态。
- 修复停滞的参与者或上游依赖,不要把等待者当作根因。
源码证据
- PostgreSQL 18.6 · src/backend/access/transam/xlogfuncs.c:731 —
WAIT_EVENT_PROMOTE - PostgreSQL 18.6 · src/backend/utils/activity/wait_event_names.txt:149 —
PROMOTE
关联控制项与信号
- GUC: 无直接关联项。
- 指标: [metric:waiting_sessions] · [metric:wait_event_share]
7.45 - IPC: RecoveryConflictSnapshot
RecoveryConflictSnapshot
版本PG 13-18
证据2 个源码位置
官方描述译文
等待解决与 vacuum cleanup 有关的恢复冲突。
| PG 13 | PG 14 | PG 15 | PG 16 | PG 17 | PG 18 |
|---|---|---|---|---|---|
| ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
触发机制
WAIT_EVENT_RECOVERY_CONFLICT_SNAPSHOT 位于 src/backend/storage/ipc/standby.c:493,是经 grep 核验的报告路径。公共身份/资源映射位于 src/backend/utils/activity/wait_event_names.txt:150。探针覆盖的操作是:等待解决与 vacuum cleanup 有关的恢复冲突。RecoveryConflictSnapshot 路径已经到达进程协调点,会休眠到对端、worker、屏障、队列或复制阶段发出进展信号。
正常还是麻烦?
- 正常: 只要所有参与者都在继续推进,短暂汇合就属正常。
- 需要调查: 同一阶段连续三次采样仍存在、预期对端缺失或被阻塞,或队列及其依赖者停止推进时,应当调查。
诊断 SQL
处置建议
- 确认事件所指的对端或阶段。
- 检查该参与者的等待、错误与进展状态。
- 修复停滞的参与者或上游依赖,不要把等待者当作根因。
源码证据
- PostgreSQL 18.6 · src/backend/storage/ipc/standby.c:493 —
WAIT_EVENT_RECOVERY_CONFLICT_SNAPSHOT - PostgreSQL 18.6 · src/backend/utils/activity/wait_event_names.txt:150 —
RECOVERY_CONFLICT_SNAPSHOT
关联控制项与信号
- GUC: 无直接关联项。
- 指标: [metric:waiting_sessions] · [metric:wait_event_share]
7.46 - IPC: RecoveryConflictTablespace
RecoveryConflictTablespace
版本PG 13-18
证据2 个源码位置
官方描述译文
等待解决与删除表空间有关的恢复冲突。
| PG 13 | PG 14 | PG 15 | PG 16 | PG 17 | PG 18 |
|---|---|---|---|---|---|
| ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
触发机制
WAIT_EVENT_RECOVERY_CONFLICT_TABLESPACE 位于 src/backend/storage/ipc/standby.c:564,是经 grep 核验的报告路径。公共身份/资源映射位于 src/backend/utils/activity/wait_event_names.txt:151。探针覆盖的操作是:等待解决与删除表空间有关的恢复冲突。RecoveryConflictTablespace 路径已经到达进程协调点,会休眠到对端、worker、屏障、队列或复制阶段发出进展信号。
正常还是麻烦?
- 正常: 只要所有参与者都在继续推进,短暂汇合就属正常。
- 需要调查: 同一阶段连续三次采样仍存在、预期对端缺失或被阻塞,或队列及其依赖者停止推进时,应当调查。
诊断 SQL
处置建议
- 确认事件所指的对端或阶段。
- 检查该参与者的等待、错误与进展状态。
- 修复停滞的参与者或上游依赖,不要把等待者当作根因。
源码证据
- PostgreSQL 18.6 · src/backend/storage/ipc/standby.c:564 —
WAIT_EVENT_RECOVERY_CONFLICT_TABLESPACE - PostgreSQL 18.6 · src/backend/utils/activity/wait_event_names.txt:151 —
RECOVERY_CONFLICT_TABLESPACE
关联控制项与信号
- GUC: 无直接关联项。
- 指标: [metric:waiting_sessions] · [metric:wait_event_share]
7.47 - IPC: RecoveryEndCommand
RecoveryEndCommand
版本PG 15-18
证据2 个源码位置
官方描述译文
等待 recovery_end_command 完成。
| PG 13 | PG 14 | PG 15 | PG 16 | PG 17 | PG 18 |
|---|---|---|---|---|---|
| — | — | ✓ | ✓ | ✓ | ✓ |
触发机制
WAIT_EVENT_RECOVERY_END_COMMAND 位于 src/backend/access/transam/xlog.c:5337,是经 grep 核验的报告路径。公共身份/资源映射位于 src/backend/utils/activity/wait_event_names.txt:152。探针覆盖的操作是:等待 recovery_end_command 完成。RecoveryEndCommand 路径已经到达进程协调点,会休眠到对端、worker、屏障、队列或复制阶段发出进展信号。
正常还是麻烦?
- 正常: 只要所有参与者都在继续推进,短暂汇合就属正常。
- 需要调查: 同一阶段连续三次采样仍存在、预期对端缺失或被阻塞,或队列及其依赖者停止推进时,应当调查。
诊断 SQL
处置建议
- 确认事件所指的对端或阶段。
- 检查该参与者的等待、错误与进展状态。
- 修复停滞的参与者或上游依赖,不要把等待者当作根因。
源码证据
- PostgreSQL 18.6 · src/backend/access/transam/xlog.c:5337 —
WAIT_EVENT_RECOVERY_END_COMMAND - PostgreSQL 18.6 · src/backend/utils/activity/wait_event_names.txt:152 —
RECOVERY_END_COMMAND
关联控制项与信号
- GUC: 无直接关联项。
- 指标: [metric:waiting_sessions] · [metric:wait_event_share]
7.48 - IPC: RecoveryPause
RecoveryPause
版本PG 13-18
证据2 个源码位置
官方描述译文
等待恢复操作继续执行。
| PG 13 | PG 14 | PG 15 | PG 16 | PG 17 | PG 18 |
|---|---|---|---|---|---|
| ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
触发机制
WAIT_EVENT_RECOVERY_PAUSE 位于 src/backend/access/transam/xlogrecovery.c:2994,是经 grep 核验的报告路径。公共身份/资源映射位于 src/backend/utils/activity/wait_event_names.txt:153。探针覆盖的操作是:等待恢复操作继续执行。RecoveryPause 路径已经到达进程协调点,会休眠到对端、worker、屏障、队列或复制阶段发出进展信号。
正常还是麻烦?
- 正常: 只要所有参与者都在继续推进,短暂汇合就属正常。
- 需要调查: 同一阶段连续三次采样仍存在、预期对端缺失或被阻塞,或队列及其依赖者停止推进时,应当调查。
诊断 SQL
处置建议
- 确认事件所指的对端或阶段。
- 检查该参与者的等待、错误与进展状态。
- 修复停滞的参与者或上游依赖,不要把等待者当作根因。
源码证据
- PostgreSQL 18.6 · src/backend/access/transam/xlogrecovery.c:2994 —
WAIT_EVENT_RECOVERY_PAUSE - PostgreSQL 18.6 · src/backend/utils/activity/wait_event_names.txt:153 —
RECOVERY_PAUSE
关联控制项与信号
- GUC: 无直接关联项。
- 指标: [metric:waiting_sessions] · [metric:wait_event_share]
7.49 - IPC: ReplicationOriginDrop
ReplicationOriginDrop
版本PG 13-18
证据2 个源码位置
官方描述译文
等待复制源变为非活动状态,以便将其删除。
| PG 13 | PG 14 | PG 15 | PG 16 | PG 17 | PG 18 |
|---|---|---|---|---|---|
| ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
触发机制
WAIT_EVENT_REPLICATION_ORIGIN_DROP 位于 src/backend/replication/logical/origin.c:408,是经 grep 核验的报告路径。公共身份/资源映射位于 src/backend/utils/activity/wait_event_names.txt:154。探针覆盖的操作是:等待复制源变为非活动状态,以便将其删除。ReplicationOriginDrop 路径已经到达进程协调点,会休眠到对端、worker、屏障、队列或复制阶段发出进展信号。
正常还是麻烦?
- 正常: 只要所有参与者都在继续推进,短暂汇合就属正常。
- 需要调查: 同一阶段连续三次采样仍存在、预期对端缺失或被阻塞,或队列及其依赖者停止推进时,应当调查。
诊断 SQL
处置建议
- 确认事件所指的对端或阶段。
- 检查该参与者的等待、错误与进展状态。
- 修复停滞的参与者或上游依赖,不要把等待者当作根因。
源码证据
- PostgreSQL 18.6 · src/backend/replication/logical/origin.c:408 —
WAIT_EVENT_REPLICATION_ORIGIN_DROP - PostgreSQL 18.6 · src/backend/utils/activity/wait_event_names.txt:154 —
REPLICATION_ORIGIN_DROP
关联控制项与信号
- GUC: 无直接关联项。
- 指标: [metric:waiting_sessions] · [metric:wait_event_share]
7.50 - IPC: ReplicationSlotDrop
ReplicationSlotDrop
版本PG 13-18
证据2 个源码位置
官方描述译文
等待复制槽变为非活动状态,以便将其删除。
| PG 13 | PG 14 | PG 15 | PG 16 | PG 17 | PG 18 |
|---|---|---|---|---|---|
| ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
触发机制
WAIT_EVENT_REPLICATION_SLOT_DROP 位于 src/backend/replication/slot.c:657,是经 grep 核验的报告路径。公共身份/资源映射位于 src/backend/utils/activity/wait_event_names.txt:155。探针覆盖的操作是:等待复制槽变为非活动状态,以便将其删除。ReplicationSlotDrop 路径已经到达进程协调点,会休眠到对端、worker、屏障、队列或复制阶段发出进展信号。
正常还是麻烦?
- 正常: 只要所有参与者都在继续推进,短暂汇合就属正常。
- 需要调查: 同一阶段连续三次采样仍存在、预期对端缺失或被阻塞,或队列及其依赖者停止推进时,应当调查。
诊断 SQL
处置建议
- 确认事件所指的对端或阶段。
- 检查该参与者的等待、错误与进展状态。
- 修复停滞的参与者或上游依赖,不要把等待者当作根因。
源码证据
- PostgreSQL 18.6 · src/backend/replication/slot.c:657 —
WAIT_EVENT_REPLICATION_SLOT_DROP - PostgreSQL 18.6 · src/backend/utils/activity/wait_event_names.txt:155 —
REPLICATION_SLOT_DROP
关联控制项与信号
- GUC: 无直接关联项。
- 指标: [metric:waiting_sessions] · [metric:wait_event_share]
7.51 - IPC: RestoreCommand
RestoreCommand
版本PG 15-18
证据2 个源码位置
官方描述译文
等待 restore_command 完成。
| PG 13 | PG 14 | PG 15 | PG 16 | PG 17 | PG 18 |
|---|---|---|---|---|---|
| — | — | ✓ | ✓ | ✓ | ✓ |
触发机制
WAIT_EVENT_RESTORE_COMMAND 位于 src/backend/access/transam/xlogarchive.c:162,是经 grep 核验的报告路径。公共身份/资源映射位于 src/backend/utils/activity/wait_event_names.txt:156。探针覆盖的操作是:等待 restore_command 完成。RestoreCommand 路径已经到达进程协调点,会休眠到对端、worker、屏障、队列或复制阶段发出进展信号。
正常还是麻烦?
- 正常: 只要所有参与者都在继续推进,短暂汇合就属正常。
- 需要调查: 同一阶段连续三次采样仍存在、预期对端缺失或被阻塞,或队列及其依赖者停止推进时,应当调查。
诊断 SQL
处置建议
- 确认事件所指的对端或阶段。
- 检查该参与者的等待、错误与进展状态。
- 修复停滞的参与者或上游依赖,不要把等待者当作根因。
源码证据
- PostgreSQL 18.6 · src/backend/access/transam/xlogarchive.c:162 —
WAIT_EVENT_RESTORE_COMMAND - PostgreSQL 18.6 · src/backend/utils/activity/wait_event_names.txt:156 —
RESTORE_COMMAND
关联控制项与信号
- GUC: 无直接关联项。
- 指标: [metric:waiting_sessions] · [metric:wait_event_share]
7.52 - IPC: SafeSnapshot
SafeSnapshot
版本PG 13-18
证据2 个源码位置
官方描述译文
等待为 READ ONLY DEFERRABLE 事务获取有效 snapshot。
| PG 13 | PG 14 | PG 15 | PG 16 | PG 17 | PG 18 |
|---|---|---|---|---|---|
| ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
触发机制
WAIT_EVENT_SAFE_SNAPSHOT 位于 src/backend/storage/lmgr/predicate.c:1589,是经 grep 核验的报告路径。公共身份/资源映射位于 src/backend/utils/activity/wait_event_names.txt:157。探针覆盖的操作是:等待为 READ ONLY DEFERRABLE 事务获取有效 snapshot。SafeSnapshot 路径已经到达进程协调点,会休眠到对端、worker、屏障、队列或复制阶段发出进展信号。
正常还是麻烦?
- 正常: 只要所有参与者都在继续推进,短暂汇合就属正常。
- 需要调查: 同一阶段连续三次采样仍存在、预期对端缺失或被阻塞,或队列及其依赖者停止推进时,应当调查。
诊断 SQL
处置建议
- 确认事件所指的对端或阶段。
- 检查该参与者的等待、错误与进展状态。
- 修复停滞的参与者或上游依赖,不要把等待者当作根因。
源码证据
- PostgreSQL 18.6 · src/backend/storage/lmgr/predicate.c:1589 —
WAIT_EVENT_SAFE_SNAPSHOT - PostgreSQL 18.6 · src/backend/utils/activity/wait_event_names.txt:157 —
SAFE_SNAPSHOT
关联控制项与信号
- GUC: 无直接关联项。
- 指标: [metric:waiting_sessions] · [metric:wait_event_share]
7.53 - IPC: SyncRep
SyncRep
版本PG 13-18
证据2 个源码位置
官方描述译文
等待同步复制期间来自远端服务器的确认。
| PG 13 | PG 14 | PG 15 | PG 16 | PG 17 | PG 18 |
|---|---|---|---|---|---|
| ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
触发机制
WAIT_EVENT_SYNC_REP 位于 src/backend/replication/syncrep.c:332,是经 grep 核验的报告路径。公共身份/资源映射位于 src/backend/utils/activity/wait_event_names.txt:158。探针覆盖的操作是:等待同步复制期间来自远端服务器的确认。SyncRep 路径已经到达进程协调点,会休眠到对端、worker、屏障、队列或复制阶段发出进展信号。
正常还是麻烦?
- 正常: 只要所有参与者都在继续推进,短暂汇合就属正常。
- 需要调查: 同一阶段连续三次采样仍存在、预期对端缺失或被阻塞,或队列及其依赖者停止推进时,应当调查。
诊断 SQL
处置建议
- 确认事件所指的对端或阶段。
- 检查该参与者的等待、错误与进展状态。
- 修复停滞的参与者或上游依赖,不要把等待者当作根因。
源码证据
- PostgreSQL 18.6 · src/backend/replication/syncrep.c:332 —
WAIT_EVENT_SYNC_REP - PostgreSQL 18.6 · src/backend/utils/activity/wait_event_names.txt:158 —
SYNC_REP
关联控制项与信号
7.54 - IPC: WalReceiverExit
WalReceiverExit
版本PG 14-18
证据2 个源码位置
官方描述译文
等待 WAL receiver 退出。
| PG 13 | PG 14 | PG 15 | PG 16 | PG 17 | PG 18 |
|---|---|---|---|---|---|
| — | ✓ | ✓ | ✓ | ✓ | ✓ |
触发机制
WAIT_EVENT_WAL_RECEIVER_EXIT 位于 src/backend/replication/walreceiverfuncs.c:228,是经 grep 核验的报告路径。公共身份/资源映射位于 src/backend/utils/activity/wait_event_names.txt:159。探针覆盖的操作是:等待 WAL receiver 退出。WalReceiverExit 路径已经到达进程协调点,会休眠到对端、worker、屏障、队列或复制阶段发出进展信号。
正常还是麻烦?
- 正常: 只要所有参与者都在继续推进,短暂汇合就属正常。
- 需要调查: 同一阶段连续三次采样仍存在、预期对端缺失或被阻塞,或队列及其依赖者停止推进时,应当调查。
诊断 SQL
处置建议
- 确认事件所指的对端或阶段。
- 检查该参与者的等待、错误与进展状态。
- 修复停滞的参与者或上游依赖,不要把等待者当作根因。
源码证据
- PostgreSQL 18.6 · src/backend/replication/walreceiverfuncs.c:228 —
WAIT_EVENT_WAL_RECEIVER_EXIT - PostgreSQL 18.6 · src/backend/utils/activity/wait_event_names.txt:159 —
WAL_RECEIVER_EXIT
关联控制项与信号
7.55 - IPC: WalReceiverUpstreamCatchup
WalReceiverUpstreamCatchup
版本PG 17-18
证据2 个源码位置
官方描述译文
等待上游服务器的 WAL flush 位置追上请求的起始点。
| PG 13 | PG 14 | PG 15 | PG 16 | PG 17 | PG 18 |
|---|---|---|---|---|---|
| — | — | — | — | ✓ | ✓ |
小版本可用性: 实测从 17.11+ 与 18.6+ 出现;17.10 与 18.4 中不存在,因此不能只写大版本范围。
触发机制
WAIT_EVENT_WAL_RECEIVER_UPSTREAM_CATCHUP 位于 src/backend/replication/walreceiver.c:398,是经 grep 核验的报告路径。公共身份/资源映射位于 src/backend/utils/activity/wait_event_names.txt:165。探针覆盖的操作是:等待上游服务器的 WAL flush 位置追上请求的起始点。WalReceiverUpstreamCatchup 路径已经到达进程协调点,会休眠到对端、worker、屏障、队列或复制阶段发出进展信号。
正常还是麻烦?
- 正常: 只要所有参与者都在继续推进,短暂汇合就属正常。
- 需要调查: 同一阶段连续三次采样仍存在、预期对端缺失或被阻塞,或队列及其依赖者停止推进时,应当调查。
诊断 SQL
处置建议
- 确认事件所指的对端或阶段。
- 检查该参与者的等待、错误与进展状态。
- 修复停滞的参与者或上游依赖,不要把等待者当作根因。
源码证据
- PostgreSQL 18.6 · src/backend/replication/walreceiver.c:398 —
WAIT_EVENT_WAL_RECEIVER_UPSTREAM_CATCHUP - PostgreSQL 18.6 · src/backend/utils/activity/wait_event_names.txt:165 —
WAL_RECEIVER_UPSTREAM_CATCHUP
关联控制项与信号
7.56 - IPC: WalReceiverWaitStart
WalReceiverWaitStart
版本PG 14-18
证据4 个源码位置
官方描述译文
等待 startup 进程发送流复制的初始数据。
| PG 13 | PG 14 | PG 15 | PG 16 | PG 17 | PG 18 |
|---|---|---|---|---|---|
| — | ✓ | ✓ | ✓ | ✓ | ✓ |
历史名称:Client/WalReceiverWaitStart (PG 13)
触发机制
WAIT_EVENT_WAL_RECEIVER_WAIT_START 位于 src/backend/postmaster/pgstat.c:3738,是经 grep 核验的报告路径。公共身份/资源映射位于 src/backend/postmaster/pgstat.c:3739。探针覆盖的操作是:等待 startup 进程发送流复制的初始数据。WalReceiverWaitStart 路径已经到达进程协调点,会休眠到对端、worker、屏障、队列或复制阶段发出进展信号。
正常还是麻烦?
- 正常: 只要所有参与者都在继续推进,短暂汇合就属正常。
- 需要调查: 同一阶段连续三次采样仍存在、预期对端缺失或被阻塞,或队列及其依赖者停止推进时,应当调查。
诊断 SQL
处置建议
- 确认事件所指的对端或阶段。
- 检查该参与者的等待、错误与进展状态。
- 修复停滞的参与者或上游依赖,不要把等待者当作根因。
源码证据
- PostgreSQL 13.23 · src/backend/postmaster/pgstat.c:3738 —
WAIT_EVENT_WAL_RECEIVER_WAIT_START - PostgreSQL 13.23 · src/backend/postmaster/pgstat.c:3739 —
WalReceiverWaitStart - PostgreSQL 18.6 · src/backend/replication/walreceiver.c:784 —
WAIT_EVENT_WAL_RECEIVER_WAIT_START - PostgreSQL 18.6 · src/backend/utils/activity/wait_event_names.txt:160 —
WAL_RECEIVER_WAIT_START
关联控制项与信号
7.57 - IPC: WalSummaryReady
WalSummaryReady
版本PG 17-18
证据2 个源码位置
官方描述译文
等待生成新的 WAL summary。
| PG 13 | PG 14 | PG 15 | PG 16 | PG 17 | PG 18 |
|---|---|---|---|---|---|
| — | — | — | — | ✓ | ✓ |
触发机制
WAIT_EVENT_WAL_SUMMARY_READY 位于 src/backend/postmaster/walsummarizer.c:821,是经 grep 核验的报告路径。公共身份/资源映射位于 src/backend/utils/activity/wait_event_names.txt:161。探针覆盖的操作是:等待生成新的 WAL summary。WalSummaryReady 路径已经到达进程协调点,会休眠到对端、worker、屏障、队列或复制阶段发出进展信号。
正常还是麻烦?
- 正常: 只要所有参与者都在继续推进,短暂汇合就属正常。
- 需要调查: 同一阶段连续三次采样仍存在、预期对端缺失或被阻塞,或队列及其依赖者停止推进时,应当调查。
诊断 SQL
处置建议
- 确认事件所指的对端或阶段。
- 检查该参与者的等待、错误与进展状态。
- 修复停滞的参与者或上游依赖,不要把等待者当作根因。
源码证据
- PostgreSQL 18.6 · src/backend/postmaster/walsummarizer.c:821 —
WAIT_EVENT_WAL_SUMMARY_READY - PostgreSQL 18.6 · src/backend/utils/activity/wait_event_names.txt:161 —
WAL_SUMMARY_READY
关联控制项与信号
7.58 - IPC: XactGroupUpdate
XactGroupUpdate
版本PG 13-18
证据2 个源码位置
官方描述译文
等待 group leader 在事务结束时更新事务状态。
| PG 13 | PG 14 | PG 15 | PG 16 | PG 17 | PG 18 |
|---|---|---|---|---|---|
| ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
触发机制
WAIT_EVENT_XACT_GROUP_UPDATE 位于 src/backend/access/transam/clog.c:535,是经 grep 核验的报告路径。公共身份/资源映射位于 src/backend/utils/activity/wait_event_names.txt:162。探针覆盖的操作是:等待 group leader 在事务结束时更新事务状态。XactGroupUpdate 路径已经到达进程协调点,会休眠到对端、worker、屏障、队列或复制阶段发出进展信号。
正常还是麻烦?
- 正常: 只要所有参与者都在继续推进,短暂汇合就属正常。
- 需要调查: 同一阶段连续三次采样仍存在、预期对端缺失或被阻塞,或队列及其依赖者停止推进时,应当调查。
诊断 SQL
处置建议
- 确认事件所指的对端或阶段。
- 检查该参与者的等待、错误与进展状态。
- 修复停滞的参与者或上游依赖,不要把等待者当作根因。
源码证据
- PostgreSQL 18.6 · src/backend/access/transam/clog.c:535 —
WAIT_EVENT_XACT_GROUP_UPDATE - PostgreSQL 18.6 · src/backend/utils/activity/wait_event_names.txt:162 —
XACT_GROUP_UPDATE
关联控制项与信号
8 - Client 等待
Client 颠倒了通常的怀疑方向:PostgreSQL 已准备好读取、写入或完成协议步骤,但远端或网络没有推进。连接池里的空闲连接很多时,大量 Client 等待往往完全正常。
状态与事务年龄决定严重度
ClientRead 加 state = 'idle' 属于预期。同一个事件若是 idle in transaction 且 xact_start 很老,就可能保留锁、快照和死元组。活动会话上的 ClientWrite 则说明服务器无法足够快地把结果交给消费者。
- 正常: 空闲池化连接等待下一条命令。
- 关注: 很老的
idle in transaction、活动状态的ClientWrite、握手等待,或应用延迟同步上升。 - 紧急: 客户端停止消费结果、连接槽耗尽、打开的事务阻碍清理,或复制客户端反复断开。
值得先认出的事件
| 事件 | 第一个责任方 |
|---|---|
| ClientRead | 应用/连接池 |
| ClientWrite | 应用消费者或网络 |
| GssOpenServer | 认证/网络路径 |
| SslOpenServer | TLS 握手路径 |
| LibpqwalreceiverReceive | 上游主库/网络 |
| WalSenderWriteData | 备库或复制客户端 |
常见误读
- “大多数会话都在 ClientRead” 不是数据库瓶颈证据;还要看状态、事务年龄与连接池规模。
- 取消空闲客户端不能修复过大的连接池,只会让连接池重新连接。
- 即使数据库主机的网络看起来空闲,慢消费者仍会导致
ClientWrite。 - 带复制语义的 Client 等待仍位于协议边界,但运维责任方不同。
8.1 - Client: ClientRead
ClientRead
版本PG 13-18
证据2 个源码位置
官方描述译文
等待从客户端读取数据。
| PG 13 | PG 14 | PG 15 | PG 16 | PG 17 | PG 18 |
|---|---|---|---|---|---|
| ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
触发机制
WAIT_EVENT_CLIENT_READ 位于 src/backend/libpq/be-secure.c:219,是经 grep 核验的报告路径。公共身份/资源映射位于 src/backend/utils/activity/wait_event_names.txt:85。探针覆盖的操作是:等待从客户端读取数据。前端协议路径在套接字、TLS/GSS 或复制客户端操作即将阻塞前报告 ClientRead;PostgreSQL 正在等待远端或网络推进。
正常还是麻烦?
- 正常: 空闲状态的 ClientRead 通常只是连接池存量。
- 需要调查: 活动写入、握手、很老的 idle in transaction、连接耗尽或复制客户端停滞时需要调查。
诊断 SQL
处置建议
- 先看 state 与事务年龄,再决定它是否算负载。
- 关联负责的应用、连接池与网络路径。
- 修复消费者背压或连接池策略,不要反复终止连接。
源码证据
- PostgreSQL 18.6 · src/backend/libpq/be-secure.c:219 —
WAIT_EVENT_CLIENT_READ - PostgreSQL 18.6 · src/backend/utils/activity/wait_event_names.txt:85 —
CLIENT_READ
关联控制项与信号
8.2 - Client: ClientWrite
ClientWrite
版本PG 13-18
证据2 个源码位置
官方描述译文
等待向客户端写入数据。
| PG 13 | PG 14 | PG 15 | PG 16 | PG 17 | PG 18 |
|---|---|---|---|---|---|
| ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
触发机制
WAIT_EVENT_CLIENT_WRITE 位于 src/backend/libpq/be-secure.c:344,是经 grep 核验的报告路径。公共身份/资源映射位于 src/backend/utils/activity/wait_event_names.txt:86。探针覆盖的操作是:等待向客户端写入数据。前端协议路径在套接字、TLS/GSS 或复制客户端操作即将阻塞前报告 ClientWrite;PostgreSQL 正在等待远端或网络推进。
正常还是麻烦?
- 正常: 空闲状态的 ClientRead 通常只是连接池存量。
- 需要调查: 活动写入、握手、很老的 idle in transaction、连接耗尽或复制客户端停滞时需要调查。
诊断 SQL
处置建议
- 先看 state 与事务年龄,再决定它是否算负载。
- 关联负责的应用、连接池与网络路径。
- 修复消费者背压或连接池策略,不要反复终止连接。
源码证据
- PostgreSQL 18.6 · src/backend/libpq/be-secure.c:344 —
WAIT_EVENT_CLIENT_WRITE - PostgreSQL 18.6 · src/backend/utils/activity/wait_event_names.txt:86 —
CLIENT_WRITE
关联控制项与信号
8.3 - Client: GssOpenServer
GssOpenServer
版本PG 17-18
证据4 个源码位置
官方描述译文
建立 GSSAPI 会话时,等待从客户端读取数据。
| PG 13 | PG 14 | PG 15 | PG 16 | PG 17 | PG 18 |
|---|---|---|---|---|---|
| — | — | — | — | ✓ | ✓ |
历史名称:Client/GSSOpenServer (PG 13-16)
触发机制
WAIT_EVENT_GSS_OPEN_SERVER 位于 src/backend/libpq/be-secure-gssapi.c:461,是经 grep 核验的报告路径。公共身份/资源映射位于 src/backend/utils/activity/wait_event.c:277。探针覆盖的操作是:建立 GSSAPI 会话时,等待从客户端读取数据。前端协议路径在套接字、TLS/GSS 或复制客户端操作即将阻塞前报告 GssOpenServer;PostgreSQL 正在等待远端或网络推进。
正常还是麻烦?
- 正常: 空闲状态的 ClientRead 通常只是连接池存量。
- 需要调查: 活动写入、握手、很老的 idle in transaction、连接耗尽或复制客户端停滞时需要调查。
诊断 SQL
处置建议
- 先看 state 与事务年龄,再决定它是否算负载。
- 关联负责的应用、连接池与网络路径。
- 修复消费者背压或连接池策略,不要反复终止连接。
源码证据
- PostgreSQL 16.15 · src/backend/libpq/be-secure-gssapi.c:461 —
WAIT_EVENT_GSS_OPEN_SERVER - PostgreSQL 16.15 · src/backend/utils/activity/wait_event.c:277 —
GSSOpenServer - PostgreSQL 18.6 · src/backend/libpq/be-secure-gssapi.c:462 —
WAIT_EVENT_GSS_OPEN_SERVER - PostgreSQL 18.6 · src/backend/utils/activity/wait_event_names.txt:87 —
GSS_OPEN_SERVER
关联控制项与信号
8.4 - Client: LibpqwalreceiverConnect
LibpqwalreceiverConnect
版本PG 17-18
证据4 个源码位置
官方描述译文
在 WAL receiver 中等待与远程服务器建立连接。
| PG 13 | PG 14 | PG 15 | PG 16 | PG 17 | PG 18 |
|---|---|---|---|---|---|
| — | — | — | — | ✓ | ✓ |
历史名称:Client/LibPQWalReceiverConnect (PG 13-16)
触发机制
WAIT_EVENT_LIBPQWALRECEIVER_CONNECT 位于 src/backend/replication/libpqwalreceiver/libpqwalreceiver.c:231,是经 grep 核验的报告路径。公共身份/资源映射位于 src/backend/utils/activity/wait_event.c:280。探针覆盖的操作是:在 WAL receiver 中等待与远程服务器建立连接。前端协议路径在套接字、TLS/GSS 或复制客户端操作即将阻塞前报告 LibpqwalreceiverConnect;PostgreSQL 正在等待远端或网络推进。
正常还是麻烦?
- 正常: 空闲状态的 ClientRead 通常只是连接池存量。
- 需要调查: 活动写入、握手、很老的 idle in transaction、连接耗尽或复制客户端停滞时需要调查。
诊断 SQL
处置建议
- 先看 state 与事务年龄,再决定它是否算负载。
- 关联负责的应用、连接池与网络路径。
- 修复消费者背压或连接池策略,不要反复终止连接。
源码证据
- PostgreSQL 16.15 · src/backend/replication/libpqwalreceiver/libpqwalreceiver.c:231 —
WAIT_EVENT_LIBPQWALRECEIVER_CONNECT - PostgreSQL 16.15 · src/backend/utils/activity/wait_event.c:280 —
LibPQWalReceiverConnect - PostgreSQL 18.6 · src/backend/replication/libpqwalreceiver/libpqwalreceiver.c:228 —
WAIT_EVENT_LIBPQWALRECEIVER_CONNECT - PostgreSQL 18.6 · src/backend/utils/activity/wait_event_names.txt:88 —
LIBPQWALRECEIVER_CONNECT
关联控制项与信号
8.5 - Client: LibpqwalreceiverReceive
LibpqwalreceiverReceive
版本PG 17-18
证据4 个源码位置
官方描述译文
在 WAL receiver 中等待从远程服务器接收数据。
| PG 13 | PG 14 | PG 15 | PG 16 | PG 17 | PG 18 |
|---|---|---|---|---|---|
| — | — | — | — | ✓ | ✓ |
历史名称:Client/LibPQWalReceiverReceive (PG 13-16)
触发机制
WAIT_EVENT_LIBPQWALRECEIVER_RECEIVE 位于 src/backend/replication/libpqwalreceiver/libpqwalreceiver.c:876,是经 grep 核验的报告路径。公共身份/资源映射位于 src/backend/utils/activity/wait_event.c:283。探针覆盖的操作是:在 WAL receiver 中等待从远程服务器接收数据。前端协议路径在套接字、TLS/GSS 或复制客户端操作即将阻塞前报告 LibpqwalreceiverReceive;PostgreSQL 正在等待远端或网络推进。
正常还是麻烦?
- 正常: 空闲状态的 ClientRead 通常只是连接池存量。
- 需要调查: 活动写入、握手、很老的 idle in transaction、连接耗尽或复制客户端停滞时需要调查。
诊断 SQL
处置建议
- 先看 state 与事务年龄,再决定它是否算负载。
- 关联负责的应用、连接池与网络路径。
- 修复消费者背压或连接池策略,不要反复终止连接。
源码证据
- PostgreSQL 16.15 · src/backend/replication/libpqwalreceiver/libpqwalreceiver.c:876 —
WAIT_EVENT_LIBPQWALRECEIVER_RECEIVE - PostgreSQL 16.15 · src/backend/utils/activity/wait_event.c:283 —
LibPQWalReceiverReceive - PostgreSQL 18.6 · src/backend/replication/libpqwalreceiver/libpqwalreceiver.c:258 —
WAIT_EVENT_LIBPQWALRECEIVER_RECEIVE - PostgreSQL 18.6 · src/backend/utils/activity/wait_event_names.txt:89 —
LIBPQWALRECEIVER_RECEIVE
关联控制项与信号
8.6 - Client: SslOpenServer
SslOpenServer
版本PG 17-18
证据4 个源码位置
官方描述译文
尝试建立连接时等待 SSL。
| PG 13 | PG 14 | PG 15 | PG 16 | PG 17 | PG 18 |
|---|---|---|---|---|---|
| — | — | — | — | ✓ | ✓ |
历史名称:Client/SSLOpenServer (PG 13-16)
触发机制
WAIT_EVENT_SSL_OPEN_SERVER 位于 src/backend/libpq/be-secure-openssl.c:508,是经 grep 核验的报告路径。公共身份/资源映射位于 src/backend/utils/activity/wait_event.c:286。探针覆盖的操作是:尝试建立连接时等待 SSL。前端协议路径在套接字、TLS/GSS 或复制客户端操作即将阻塞前报告 SslOpenServer;PostgreSQL 正在等待远端或网络推进。
正常还是麻烦?
- 正常: 空闲状态的 ClientRead 通常只是连接池存量。
- 需要调查: 活动写入、握手、很老的 idle in transaction、连接耗尽或复制客户端停滞时需要调查。
诊断 SQL
处置建议
- 先看 state 与事务年龄,再决定它是否算负载。
- 关联负责的应用、连接池与网络路径。
- 修复消费者背压或连接池策略,不要反复终止连接。
源码证据
- PostgreSQL 16.15 · src/backend/libpq/be-secure-openssl.c:508 —
WAIT_EVENT_SSL_OPEN_SERVER - PostgreSQL 16.15 · src/backend/utils/activity/wait_event.c:286 —
SSLOpenServer - PostgreSQL 18.6 · src/backend/libpq/be-secure-openssl.c:526 —
WAIT_EVENT_SSL_OPEN_SERVER - PostgreSQL 18.6 · src/backend/utils/activity/wait_event_names.txt:90 —
SSL_OPEN_SERVER
关联控制项与信号
8.7 - Client: WaitForStandbyConfirmation
WaitForStandbyConfirmation
版本PG 17-18
证据2 个源码位置
官方描述译文
等待物理备库接收并刷写 WAL。
| PG 13 | PG 14 | PG 15 | PG 16 | PG 17 | PG 18 |
|---|---|---|---|---|---|
| — | — | — | — | ✓ | ✓ |
触发机制
WAIT_EVENT_WAIT_FOR_STANDBY_CONFIRMATION 位于 src/backend/replication/slot.c:3083,是经 grep 核验的报告路径。公共身份/资源映射位于 src/backend/utils/activity/wait_event_names.txt:91。探针覆盖的操作是:等待物理备库接收并刷写 WAL。前端协议路径在套接字、TLS/GSS 或复制客户端操作即将阻塞前报告 WaitForStandbyConfirmation;PostgreSQL 正在等待远端或网络推进。
正常还是麻烦?
- 正常: 空闲状态的 ClientRead 通常只是连接池存量。
- 需要调查: 活动写入、握手、很老的 idle in transaction、连接耗尽或复制客户端停滞时需要调查。
诊断 SQL
处置建议
- 先看 state 与事务年龄,再决定它是否算负载。
- 关联负责的应用、连接池与网络路径。
- 修复消费者背压或连接池策略,不要反复终止连接。
源码证据
- PostgreSQL 18.6 · src/backend/replication/slot.c:3083 —
WAIT_EVENT_WAIT_FOR_STANDBY_CONFIRMATION - PostgreSQL 18.6 · src/backend/utils/activity/wait_event_names.txt:91 —
WAIT_FOR_STANDBY_CONFIRMATION
关联控制项与信号
8.8 - Client: WalSenderWaitForWal
WalSenderWaitForWal
版本PG 17-18
证据4 个源码位置
官方描述译文
在 WAL sender 进程中等待 WAL 完成刷写。
| PG 13 | PG 14 | PG 15 | PG 16 | PG 17 | PG 18 |
|---|---|---|---|---|---|
| — | — | — | — | ✓ | ✓ |
历史名称:Client/WalSenderWaitForWAL (PG 13-16)
触发机制
WAIT_EVENT_WAL_SENDER_WAIT_WAL 位于 src/backend/replication/walsender.c:1714,是经 grep 核验的报告路径。公共身份/资源映射位于 src/backend/utils/activity/wait_event.c:289。探针覆盖的操作是:在 WAL sender 进程中等待 WAL 完成刷写。前端协议路径在套接字、TLS/GSS 或复制客户端操作即将阻塞前报告 WalSenderWaitForWal;PostgreSQL 正在等待远端或网络推进。
正常还是麻烦?
- 正常: 空闲状态的 ClientRead 通常只是连接池存量。
- 需要调查: 活动写入、握手、很老的 idle in transaction、连接耗尽或复制客户端停滞时需要调查。
诊断 SQL
处置建议
- 先看 state 与事务年龄,再决定它是否算负载。
- 关联负责的应用、连接池与网络路径。
- 修复消费者背压或连接池策略,不要反复终止连接。
源码证据
- PostgreSQL 16.15 · src/backend/replication/walsender.c:1714 —
WAIT_EVENT_WAL_SENDER_WAIT_WAL - PostgreSQL 16.15 · src/backend/utils/activity/wait_event.c:289 —
WalSenderWaitForWAL - PostgreSQL 18.6 · src/backend/replication/walsender.c:1813 —
WAIT_EVENT_WAL_SENDER_WAIT_FOR_WAL - PostgreSQL 18.6 · src/backend/utils/activity/wait_event_names.txt:92 —
WAL_SENDER_WAIT_FOR_WAL
关联控制项与信号
8.9 - Client: WalSenderWriteData
WalSenderWriteData
版本PG 13-18
证据2 个源码位置
官方描述译文
在 WAL sender 进程中处理 WAL receiver 的回复时,等待发生任何活动。
| PG 13 | PG 14 | PG 15 | PG 16 | PG 17 | PG 18 |
|---|---|---|---|---|---|
| ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
触发机制
WAIT_EVENT_WAL_SENDER_WRITE_DATA 位于 src/backend/replication/walsender.c:1653,是经 grep 核验的报告路径。公共身份/资源映射位于 src/backend/utils/activity/wait_event_names.txt:93。探针覆盖的操作是:在 WAL sender 进程中处理 WAL receiver 的回复时,等待发生任何活动。前端协议路径在套接字、TLS/GSS 或复制客户端操作即将阻塞前报告 WalSenderWriteData;PostgreSQL 正在等待远端或网络推进。
正常还是麻烦?
- 正常: 空闲状态的 ClientRead 通常只是连接池存量。
- 需要调查: 活动写入、握手、很老的 idle in transaction、连接耗尽或复制客户端停滞时需要调查。
诊断 SQL
处置建议
- 先看 state 与事务年龄,再决定它是否算负载。
- 关联负责的应用、连接池与网络路径。
- 修复消费者背压或连接池策略,不要反复终止连接。
源码证据
- PostgreSQL 18.6 · src/backend/replication/walsender.c:1653 —
WAIT_EVENT_WAL_SENDER_WRITE_DATA - PostgreSQL 18.6 · src/backend/utils/activity/wait_event_names.txt:93 —
WAL_SENDER_WRITE_DATA
关联控制项与信号
9 - Activity 等待
Activity 多数时候只是健康后台进程空闲时的声音。Archiver、checkpointer、WAL writer、autovacuum launcher、复制 worker 等进程在主循环中等待时会报告各自的名称。
按 backend type 解释
这些事件不应进入前台“等待会话比例”的分母。应把事件与 backend_type 对照,并询问该进程此刻是否本来就该有工作。
- 正常: 一个匹配的后台进程在文档说明的主循环中等待。
- 关注: 事件出现在错误的后端类型、进程缺失,或工作队列增长但它仍空闲。
- 紧急: 必需的后台进度停止——归档积压、不再产生检查点、复制不推进,或关闭无法完成。
值得先认出的事件
| 事件 | 预期进程 |
|---|---|
| AutovacuumMain | 调度周期之间的 autovacuum launcher |
| CheckpointerMain | 等待工作的 checkpointer |
| WalWriterMain | WAL writer 主循环 |
| ArchiverMain | 等待完整 WAL 段的 archiver |
| WalReceiverMain | WAL receiver 主循环 |
| RecoveryWalStream | startup 进程等待流式 WAL |
| IoWorkerMain | PG18 异步 I/O worker 等待工作 |
常见误读
- Activity 在所有后端中占比很高,可能只说明集群很空闲。
- 空闲的 checkpointer 不表示检查点被禁用。
- 正常的等待名称并不能证明进度正常;还要检查队列、积压与时间戳。
- 缺少本应存在的后台进程,通常比看到它的 Activity 等待更重要。
9.1 - Activity: ArchiverMain
ArchiverMain
版本PG 13-18
证据2 个源码位置
官方描述译文
在 archiver 进程的主循环中等待。
| PG 13 | PG 14 | PG 15 | PG 16 | PG 17 | PG 18 |
|---|---|---|---|---|---|
| ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
触发机制
WAIT_EVENT_ARCHIVER_MAIN 位于 src/backend/postmaster/pgarch.c:362,是经 grep 核验的报告路径。公共身份/资源映射位于 src/backend/utils/activity/wait_event_names.txt:54。探针覆盖的操作是:在 archiver 进程的主循环中等待。ArchiverMain 后台路径在主循环暂时无事可做、进入 latch wait 前报告此事件;信号、计时器或新工作会唤醒进程并进入下一轮循环。
正常还是麻烦?
- 正常: 对匹配的后台进程而言,这通常是预期空闲。
- 需要调查: 只有工作队列、关闭或故障切换时限没有推进但进程一直停在这里,或事件出现在不匹配的后端类型上时,才需要调查。
诊断 SQL
处置建议
- 先与 backend_type 对照。
- 检查该进程专属的积压与最后进展时间。
- 修复缺失的工作信号或停滞的上游阶段,不要终止正常空闲的 worker。
源码证据
- PostgreSQL 18.6 · src/backend/postmaster/pgarch.c:362 —
WAIT_EVENT_ARCHIVER_MAIN - PostgreSQL 18.6 · src/backend/utils/activity/wait_event_names.txt:54 —
ARCHIVER_MAIN
关联控制项与信号
- GUC: 无直接关联项。
- 指标: [metric:waiting_sessions] · [metric:wait_event_share]
9.2 - Activity: AutovacuumMain
AutovacuumMain
版本PG 17-18
证据4 个源码位置
官方描述译文
在 autovacuum launcher 进程的主循环中等待。
| PG 13 | PG 14 | PG 15 | PG 16 | PG 17 | PG 18 |
|---|---|---|---|---|---|
| — | — | — | — | ✓ | ✓ |
历史名称:Activity/AutoVacuumMain (PG 13-16)
触发机制
WAIT_EVENT_AUTOVACUUM_MAIN 位于 src/backend/postmaster/autovacuum.c:667,是经 grep 核验的报告路径。公共身份/资源映射位于 src/backend/utils/activity/wait_event.c:216。探针覆盖的操作是:在 autovacuum launcher 进程的主循环中等待。AutovacuumMain 后台路径在主循环暂时无事可做、进入 latch wait 前报告此事件;信号、计时器或新工作会唤醒进程并进入下一轮循环。
正常还是麻烦?
- 正常: 对匹配的后台进程而言,这通常是预期空闲。
- 需要调查: 只有工作队列、关闭或故障切换时限没有推进但进程一直停在这里,或事件出现在不匹配的后端类型上时,才需要调查。
诊断 SQL
处置建议
- 先与 backend_type 对照。
- 检查该进程专属的积压与最后进展时间。
- 修复缺失的工作信号或停滞的上游阶段,不要终止正常空闲的 worker。
源码证据
- PostgreSQL 16.15 · src/backend/postmaster/autovacuum.c:667 —
WAIT_EVENT_AUTOVACUUM_MAIN - PostgreSQL 16.15 · src/backend/utils/activity/wait_event.c:216 —
AutoVacuumMain - PostgreSQL 18.6 · src/backend/postmaster/autovacuum.c:595 —
WAIT_EVENT_AUTOVACUUM_MAIN - PostgreSQL 18.6 · src/backend/utils/activity/wait_event_names.txt:55 —
AUTOVACUUM_MAIN
关联控制项与信号
9.3 - Activity: BgwriterHibernate
BgwriterHibernate
版本PG 17-18
证据4 个源码位置
官方描述译文
在后台写入器进程休眠时等待。
| PG 13 | PG 14 | PG 15 | PG 16 | PG 17 | PG 18 |
|---|---|---|---|---|---|
| — | — | — | — | ✓ | ✓ |
历史名称:Activity/BgWriterHibernate (PG 13-16)
触发机制
WAIT_EVENT_BGWRITER_HIBERNATE 位于 src/backend/postmaster/bgwriter.c:339,是经 grep 核验的报告路径。公共身份/资源映射位于 src/backend/utils/activity/wait_event.c:219。探针覆盖的操作是:在后台写入器进程休眠时等待。BgwriterHibernate 后台路径在主循环暂时无事可做、进入 latch wait 前报告此事件;信号、计时器或新工作会唤醒进程并进入下一轮循环。
正常还是麻烦?
- 正常: 对匹配的后台进程而言,这通常是预期空闲。
- 需要调查: 只有工作队列、关闭或故障切换时限没有推进但进程一直停在这里,或事件出现在不匹配的后端类型上时,才需要调查。
诊断 SQL
处置建议
- 先与 backend_type 对照。
- 检查该进程专属的积压与最后进展时间。
- 修复缺失的工作信号或停滞的上游阶段,不要终止正常空闲的 worker。
源码证据
- PostgreSQL 16.15 · src/backend/postmaster/bgwriter.c:339 —
WAIT_EVENT_BGWRITER_HIBERNATE - PostgreSQL 16.15 · src/backend/utils/activity/wait_event.c:219 —
BgWriterHibernate - PostgreSQL 18.6 · src/backend/postmaster/bgwriter.c:337 —
WAIT_EVENT_BGWRITER_HIBERNATE - PostgreSQL 18.6 · src/backend/utils/activity/wait_event_names.txt:56 —
BGWRITER_HIBERNATE
关联控制项与信号
- GUC: 无直接关联项。
- 指标: [metric:waiting_sessions] · [metric:wait_event_share]
9.4 - Activity: BgwriterMain
BgwriterMain
版本PG 17-18
证据4 个源码位置
官方描述译文
在后台写入器进程的主循环中等待。
| PG 13 | PG 14 | PG 15 | PG 16 | PG 17 | PG 18 |
|---|---|---|---|---|---|
| — | — | — | — | ✓ | ✓ |
历史名称:Activity/BgWriterMain (PG 13-16)
触发机制
WAIT_EVENT_BGWRITER_MAIN 位于 src/backend/postmaster/bgwriter.c:311,是经 grep 核验的报告路径。公共身份/资源映射位于 src/backend/utils/activity/wait_event.c:222。探针覆盖的操作是:在后台写入器进程的主循环中等待。BgwriterMain 后台路径在主循环暂时无事可做、进入 latch wait 前报告此事件;信号、计时器或新工作会唤醒进程并进入下一轮循环。
正常还是麻烦?
- 正常: 对匹配的后台进程而言,这通常是预期空闲。
- 需要调查: 只有工作队列、关闭或故障切换时限没有推进但进程一直停在这里,或事件出现在不匹配的后端类型上时,才需要调查。
诊断 SQL
处置建议
- 先与 backend_type 对照。
- 检查该进程专属的积压与最后进展时间。
- 修复缺失的工作信号或停滞的上游阶段,不要终止正常空闲的 worker。
源码证据
- PostgreSQL 16.15 · src/backend/postmaster/bgwriter.c:311 —
WAIT_EVENT_BGWRITER_MAIN - PostgreSQL 16.15 · src/backend/utils/activity/wait_event.c:222 —
BgWriterMain - PostgreSQL 18.6 · src/backend/postmaster/bgwriter.c:309 —
WAIT_EVENT_BGWRITER_MAIN - PostgreSQL 18.6 · src/backend/utils/activity/wait_event_names.txt:57 —
BGWRITER_MAIN
关联控制项与信号
- GUC: 无直接关联项。
- 指标: [metric:waiting_sessions] · [metric:wait_event_share]
9.5 - Activity: CheckpointerMain
CheckpointerMain
版本PG 13-18
证据2 个源码位置
官方描述译文
在 checkpointer 进程的主循环中等待。
| PG 13 | PG 14 | PG 15 | PG 16 | PG 17 | PG 18 |
|---|---|---|---|---|---|
| ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
触发机制
WAIT_EVENT_CHECKPOINTER_MAIN 位于 src/backend/postmaster/checkpointer.c:583,是经 grep 核验的报告路径。公共身份/资源映射位于 src/backend/utils/activity/wait_event_names.txt:58。探针覆盖的操作是:在 checkpointer 进程的主循环中等待。CheckpointerMain 后台路径在主循环暂时无事可做、进入 latch wait 前报告此事件;信号、计时器或新工作会唤醒进程并进入下一轮循环。
正常还是麻烦?
- 正常: 对匹配的后台进程而言,这通常是预期空闲。
- 需要调查: 只有工作队列、关闭或故障切换时限没有推进但进程一直停在这里,或事件出现在不匹配的后端类型上时,才需要调查。
诊断 SQL
处置建议
- 先与 backend_type 对照。
- 检查该进程专属的积压与最后进展时间。
- 修复缺失的工作信号或停滞的上游阶段,不要终止正常空闲的 worker。
源码证据
- PostgreSQL 18.6 · src/backend/postmaster/checkpointer.c:583 —
WAIT_EVENT_CHECKPOINTER_MAIN - PostgreSQL 18.6 · src/backend/utils/activity/wait_event_names.txt:58 —
CHECKPOINTER_MAIN
关联控制项与信号
9.6 - Activity: CheckpointerShutdown
CheckpointerShutdown
版本PG 18
证据2 个源码位置
官方描述译文
等待 checkpointer 进程终止。
| PG 13 | PG 14 | PG 15 | PG 16 | PG 17 | PG 18 |
|---|---|---|---|---|---|
| — | — | — | — | — | ✓ |
触发机制
WAIT_EVENT_CHECKPOINTER_SHUTDOWN 位于 src/backend/postmaster/checkpointer.c:631,是经 grep 核验的报告路径。公共身份/资源映射位于 src/backend/utils/activity/wait_event_names.txt:59。探针覆盖的操作是:等待 checkpointer 进程终止。CheckpointerShutdown 后台路径在主循环暂时无事可做、进入 latch wait 前报告此事件;信号、计时器或新工作会唤醒进程并进入下一轮循环。
正常还是麻烦?
- 正常: 对匹配的后台进程而言,这通常是预期空闲。
- 需要调查: 只有工作队列、关闭或故障切换时限没有推进但进程一直停在这里,或事件出现在不匹配的后端类型上时,才需要调查。
诊断 SQL
处置建议
- 先与 backend_type 对照。
- 检查该进程专属的积压与最后进展时间。
- 修复缺失的工作信号或停滞的上游阶段,不要终止正常空闲的 worker。
源码证据
- PostgreSQL 18.6 · src/backend/postmaster/checkpointer.c:631 —
WAIT_EVENT_CHECKPOINTER_SHUTDOWN - PostgreSQL 18.6 · src/backend/utils/activity/wait_event_names.txt:59 —
CHECKPOINTER_SHUTDOWN
关联控制项与信号
9.7 - Activity: IoWorkerMain
IoWorkerMain
版本PG 18
证据2 个源码位置
官方描述译文
在 I/O worker 进程的主循环中等待。
| PG 13 | PG 14 | PG 15 | PG 16 | PG 17 | PG 18 |
|---|---|---|---|---|---|
| — | — | — | — | — | ✓ |
触发机制
WAIT_EVENT_IO_WORKER_MAIN 位于 src/backend/storage/aio/method_worker.c:573,是经 grep 核验的报告路径。公共身份/资源映射位于 src/backend/utils/activity/wait_event_names.txt:60。探针覆盖的操作是:在 I/O worker 进程的主循环中等待。IoWorkerMain 后台路径在主循环暂时无事可做、进入 latch wait 前报告此事件;信号、计时器或新工作会唤醒进程并进入下一轮循环。
正常还是麻烦?
- 正常: 对匹配的后台进程而言,这通常是预期空闲。
- 需要调查: 只有工作队列、关闭或故障切换时限没有推进但进程一直停在这里,或事件出现在不匹配的后端类型上时,才需要调查。
诊断 SQL
处置建议
- 先与 backend_type 对照。
- 检查该进程专属的积压与最后进展时间。
- 修复缺失的工作信号或停滞的上游阶段,不要终止正常空闲的 worker。
源码证据
- PostgreSQL 18.6 · src/backend/storage/aio/method_worker.c:573 —
WAIT_EVENT_IO_WORKER_MAIN - PostgreSQL 18.6 · src/backend/utils/activity/wait_event_names.txt:60 —
IO_WORKER_MAIN
关联控制项与信号
- GUC: 无直接关联项。
- 指标: [metric:waiting_sessions] · [metric:wait_event_share]
9.8 - Activity: LogicalApplyMain
LogicalApplyMain
版本PG 13-18
证据2 个源码位置
官方描述译文
在逻辑复制 apply 进程的主循环中等待。
| PG 13 | PG 14 | PG 15 | PG 16 | PG 17 | PG 18 |
|---|---|---|---|---|---|
| ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
触发机制
WAIT_EVENT_LOGICAL_APPLY_MAIN 位于 src/backend/replication/logical/worker.c:3766,是经 grep 核验的报告路径。公共身份/资源映射位于 src/backend/utils/activity/wait_event_names.txt:61。探针覆盖的操作是:在逻辑复制 apply 进程的主循环中等待。LogicalApplyMain 后台路径在主循环暂时无事可做、进入 latch wait 前报告此事件;信号、计时器或新工作会唤醒进程并进入下一轮循环。
正常还是麻烦?
- 正常: 对匹配的后台进程而言,这通常是预期空闲。
- 需要调查: 只有工作队列、关闭或故障切换时限没有推进但进程一直停在这里,或事件出现在不匹配的后端类型上时,才需要调查。
诊断 SQL
处置建议
- 先与 backend_type 对照。
- 检查该进程专属的积压与最后进展时间。
- 修复缺失的工作信号或停滞的上游阶段,不要终止正常空闲的 worker。
源码证据
- PostgreSQL 18.6 · src/backend/replication/logical/worker.c:3766 —
WAIT_EVENT_LOGICAL_APPLY_MAIN - PostgreSQL 18.6 · src/backend/utils/activity/wait_event_names.txt:61 —
LOGICAL_APPLY_MAIN
关联控制项与信号
- GUC: 无直接关联项。
- 指标: [metric:waiting_sessions] · [metric:wait_event_share]
9.9 - Activity: LogicalLauncherMain
LogicalLauncherMain
版本PG 13-18
证据2 个源码位置
官方描述译文
在逻辑复制 launcher 进程的主循环中等待。
| PG 13 | PG 14 | PG 15 | PG 16 | PG 17 | PG 18 |
|---|---|---|---|---|---|
| ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
触发机制
WAIT_EVENT_LOGICAL_LAUNCHER_MAIN 位于 src/backend/replication/logical/launcher.c:1242,是经 grep 核验的报告路径。公共身份/资源映射位于 src/backend/utils/activity/wait_event_names.txt:62。探针覆盖的操作是:在逻辑复制 launcher 进程的主循环中等待。LogicalLauncherMain 后台路径在主循环暂时无事可做、进入 latch wait 前报告此事件;信号、计时器或新工作会唤醒进程并进入下一轮循环。
正常还是麻烦?
- 正常: 对匹配的后台进程而言,这通常是预期空闲。
- 需要调查: 只有工作队列、关闭或故障切换时限没有推进但进程一直停在这里,或事件出现在不匹配的后端类型上时,才需要调查。
诊断 SQL
处置建议
- 先与 backend_type 对照。
- 检查该进程专属的积压与最后进展时间。
- 修复缺失的工作信号或停滞的上游阶段,不要终止正常空闲的 worker。
源码证据
- PostgreSQL 18.6 · src/backend/replication/logical/launcher.c:1242 —
WAIT_EVENT_LOGICAL_LAUNCHER_MAIN - PostgreSQL 18.6 · src/backend/utils/activity/wait_event_names.txt:62 —
LOGICAL_LAUNCHER_MAIN
关联控制项与信号
- GUC: 无直接关联项。
- 指标: [metric:waiting_sessions] · [metric:wait_event_share]
9.10 - Activity: LogicalParallelApplyMain
LogicalParallelApplyMain
版本PG 16-18
证据2 个源码位置
官方描述译文
在逻辑复制并行 apply 进程的主循环中等待。
| PG 13 | PG 14 | PG 15 | PG 16 | PG 17 | PG 18 |
|---|---|---|---|---|---|
| — | — | — | ✓ | ✓ | ✓ |
触发机制
WAIT_EVENT_LOGICAL_PARALLEL_APPLY_MAIN 位于 src/backend/replication/logical/applyparallelworker.c:810,是经 grep 核验的报告路径。公共身份/资源映射位于 src/backend/utils/activity/wait_event_names.txt:63。探针覆盖的操作是:在逻辑复制并行 apply 进程的主循环中等待。LogicalParallelApplyMain 后台路径在主循环暂时无事可做、进入 latch wait 前报告此事件;信号、计时器或新工作会唤醒进程并进入下一轮循环。
正常还是麻烦?
- 正常: 对匹配的后台进程而言,这通常是预期空闲。
- 需要调查: 只有工作队列、关闭或故障切换时限没有推进但进程一直停在这里,或事件出现在不匹配的后端类型上时,才需要调查。
诊断 SQL
处置建议
- 先与 backend_type 对照。
- 检查该进程专属的积压与最后进展时间。
- 修复缺失的工作信号或停滞的上游阶段,不要终止正常空闲的 worker。
源码证据
- PostgreSQL 18.6 · src/backend/replication/logical/applyparallelworker.c:810 —
WAIT_EVENT_LOGICAL_PARALLEL_APPLY_MAIN - PostgreSQL 18.6 · src/backend/utils/activity/wait_event_names.txt:63 —
LOGICAL_PARALLEL_APPLY_MAIN
关联控制项与信号
- GUC: 无直接关联项。
- 指标: [metric:waiting_sessions] · [metric:wait_event_share]
9.11 - Activity: PgStatMain
PgStatMain
版本PG 13-14
证据2 个源码位置
官方描述译文
在统计收集器进程的主循环中等待。
| PG 13 | PG 14 | PG 15 | PG 16 | PG 17 | PG 18 |
|---|---|---|---|---|---|
| ✓ | ✓ | — | — | — | — |
触发机制
WAIT_EVENT_PGSTAT_MAIN 位于 src/backend/postmaster/pgstat.c:3425,是经 grep 核验的报告路径。公共身份/资源映射位于 src/backend/utils/activity/wait_event.c:234。探针覆盖的操作是:在统计收集器进程的主循环中等待。PgStatMain 后台路径在主循环暂时无事可做、进入 latch wait 前报告此事件;信号、计时器或新工作会唤醒进程并进入下一轮循环。
正常还是麻烦?
- 正常: 对匹配的后台进程而言,这通常是预期空闲。
- 需要调查: 只有工作队列、关闭或故障切换时限没有推进但进程一直停在这里,或事件出现在不匹配的后端类型上时,才需要调查。
诊断 SQL
处置建议
- 先与 backend_type 对照。
- 检查该进程专属的积压与最后进展时间。
- 修复缺失的工作信号或停滞的上游阶段,不要终止正常空闲的 worker。
源码证据
- PostgreSQL 14.24 · src/backend/postmaster/pgstat.c:3425 —
WAIT_EVENT_PGSTAT_MAIN - PostgreSQL 14.24 · src/backend/utils/activity/wait_event.c:234 —
PgStatMain
关联控制项与信号
- GUC: 无直接关联项。
- 指标: [metric:waiting_sessions] · [metric:wait_event_share]
9.12 - Activity: RecoveryWalStream
RecoveryWalStream
版本PG 13-18
证据2 个源码位置
官方描述译文
流式恢复期间,在 startup 进程的主循环中等待 WAL 到达。
| PG 13 | PG 14 | PG 15 | PG 16 | PG 17 | PG 18 |
|---|---|---|---|---|---|
| ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
触发机制
WAIT_EVENT_RECOVERY_WAL_STREAM 位于 src/backend/access/transam/xlogrecovery.c:4038,是经 grep 核验的报告路径。公共身份/资源映射位于 src/backend/utils/activity/wait_event_names.txt:64。探针覆盖的操作是:流式恢复期间,在 startup 进程的主循环中等待 WAL 到达。RecoveryWalStream 后台路径在主循环暂时无事可做、进入 latch wait 前报告此事件;信号、计时器或新工作会唤醒进程并进入下一轮循环。
正常还是麻烦?
- 正常: 对匹配的后台进程而言,这通常是预期空闲。
- 需要调查: 只有工作队列、关闭或故障切换时限没有推进但进程一直停在这里,或事件出现在不匹配的后端类型上时,才需要调查。
诊断 SQL
处置建议
- 先与 backend_type 对照。
- 检查该进程专属的积压与最后进展时间。
- 修复缺失的工作信号或停滞的上游阶段,不要终止正常空闲的 worker。
源码证据
- PostgreSQL 18.6 · src/backend/access/transam/xlogrecovery.c:4038 —
WAIT_EVENT_RECOVERY_WAL_STREAM - PostgreSQL 18.6 · src/backend/utils/activity/wait_event_names.txt:64 —
RECOVERY_WAL_STREAM
关联控制项与信号
9.13 - Activity: ReplicationSlotsyncMain
ReplicationSlotsyncMain
版本PG 17-18
证据2 个源码位置
官方描述译文
在复制槽同步 worker 的主循环中等待。
| PG 13 | PG 14 | PG 15 | PG 16 | PG 17 | PG 18 |
|---|---|---|---|---|---|
| — | — | — | — | ✓ | ✓ |
触发机制
WAIT_EVENT_REPLICATION_SLOTSYNC_MAIN 位于 src/backend/replication/logical/slotsync.c:1369,是经 grep 核验的报告路径。公共身份/资源映射位于 src/backend/utils/activity/wait_event_names.txt:65。探针覆盖的操作是:在复制槽同步 worker 的主循环中等待。ReplicationSlotsyncMain 后台路径在主循环暂时无事可做、进入 latch wait 前报告此事件;信号、计时器或新工作会唤醒进程并进入下一轮循环。
正常还是麻烦?
- 正常: 对匹配的后台进程而言,这通常是预期空闲。
- 需要调查: 只有工作队列、关闭或故障切换时限没有推进但进程一直停在这里,或事件出现在不匹配的后端类型上时,才需要调查。
诊断 SQL
处置建议
- 先与 backend_type 对照。
- 检查该进程专属的积压与最后进展时间。
- 修复缺失的工作信号或停滞的上游阶段,不要终止正常空闲的 worker。
源码证据
- PostgreSQL 18.6 · src/backend/replication/logical/slotsync.c:1369 —
WAIT_EVENT_REPLICATION_SLOTSYNC_MAIN - PostgreSQL 18.6 · src/backend/utils/activity/wait_event_names.txt:65 —
REPLICATION_SLOTSYNC_MAIN
关联控制项与信号
- GUC: 无直接关联项。
- 指标: [metric:waiting_sessions] · [metric:wait_event_share]
9.14 - Activity: ReplicationSlotsyncShutdown
ReplicationSlotsyncShutdown
版本PG 17-18
证据2 个源码位置
官方描述译文
等待复制槽同步 worker 停止运行。
| PG 13 | PG 14 | PG 15 | PG 16 | PG 17 | PG 18 |
|---|---|---|---|---|---|
| — | — | — | — | ✓ | ✓ |
触发机制
WAIT_EVENT_REPLICATION_SLOTSYNC_SHUTDOWN 位于 src/backend/replication/logical/slotsync.c:1732,是经 grep 核验的报告路径。公共身份/资源映射位于 src/backend/utils/activity/wait_event_names.txt:66。探针覆盖的操作是:等待复制槽同步 worker 停止运行。ReplicationSlotsyncShutdown 后台路径在主循环暂时无事可做、进入 latch wait 前报告此事件;信号、计时器或新工作会唤醒进程并进入下一轮循环。
正常还是麻烦?
- 正常: 对匹配的后台进程而言,这通常是预期空闲。
- 需要调查: 只有工作队列、关闭或故障切换时限没有推进但进程一直停在这里,或事件出现在不匹配的后端类型上时,才需要调查。
诊断 SQL
处置建议
- 先与 backend_type 对照。
- 检查该进程专属的积压与最后进展时间。
- 修复缺失的工作信号或停滞的上游阶段,不要终止正常空闲的 worker。
源码证据
- PostgreSQL 18.6 · src/backend/replication/logical/slotsync.c:1732 —
WAIT_EVENT_REPLICATION_SLOTSYNC_SHUTDOWN - PostgreSQL 18.6 · src/backend/utils/activity/wait_event_names.txt:66 —
REPLICATION_SLOTSYNC_SHUTDOWN
关联控制项与信号
- GUC: 无直接关联项。
- 指标: [metric:waiting_sessions] · [metric:wait_event_share]
9.15 - Activity: SysloggerMain
SysloggerMain
版本PG 17-18
证据4 个源码位置
官方描述译文
在 syslogger 进程的主循环中等待。
| PG 13 | PG 14 | PG 15 | PG 16 | PG 17 | PG 18 |
|---|---|---|---|---|---|
| — | — | — | — | ✓ | ✓ |
历史名称:Activity/SysLoggerMain (PG 13-16)
触发机制
WAIT_EVENT_SYSLOGGER_MAIN 位于 src/backend/postmaster/syslogger.c:487,是经 grep 核验的报告路径。公共身份/资源映射位于 src/backend/utils/activity/wait_event.c:240。探针覆盖的操作是:在 syslogger 进程的主循环中等待。SysloggerMain 后台路径在主循环暂时无事可做、进入 latch wait 前报告此事件;信号、计时器或新工作会唤醒进程并进入下一轮循环。
正常还是麻烦?
- 正常: 对匹配的后台进程而言,这通常是预期空闲。
- 需要调查: 只有工作队列、关闭或故障切换时限没有推进但进程一直停在这里,或事件出现在不匹配的后端类型上时,才需要调查。
诊断 SQL
处置建议
- 先与 backend_type 对照。
- 检查该进程专属的积压与最后进展时间。
- 修复缺失的工作信号或停滞的上游阶段,不要终止正常空闲的 worker。
源码证据
- PostgreSQL 16.15 · src/backend/postmaster/syslogger.c:487 —
WAIT_EVENT_SYSLOGGER_MAIN - PostgreSQL 16.15 · src/backend/utils/activity/wait_event.c:240 —
SysLoggerMain - PostgreSQL 18.6 · src/backend/postmaster/syslogger.c:513 —
WAIT_EVENT_SYSLOGGER_MAIN - PostgreSQL 18.6 · src/backend/utils/activity/wait_event_names.txt:67 —
SYSLOGGER_MAIN
关联控制项与信号
- GUC: 无直接关联项。
- 指标: [metric:waiting_sessions] · [metric:wait_event_share]
9.16 - Activity: WalReceiverMain
WalReceiverMain
版本PG 13-18
证据2 个源码位置
官方描述译文
在 WAL receiver 进程的主循环中等待。
| PG 13 | PG 14 | PG 15 | PG 16 | PG 17 | PG 18 |
|---|---|---|---|---|---|
| ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
触发机制
WAIT_EVENT_WAL_RECEIVER_MAIN 位于 src/backend/replication/walreceiver.c:600,是经 grep 核验的报告路径。公共身份/资源映射位于 src/backend/utils/activity/wait_event_names.txt:68。探针覆盖的操作是:在 WAL receiver 进程的主循环中等待。WalReceiverMain 后台路径在主循环暂时无事可做、进入 latch wait 前报告此事件;信号、计时器或新工作会唤醒进程并进入下一轮循环。
正常还是麻烦?
- 正常: 对匹配的后台进程而言,这通常是预期空闲。
- 需要调查: 只有工作队列、关闭或故障切换时限没有推进但进程一直停在这里,或事件出现在不匹配的后端类型上时,才需要调查。
诊断 SQL
处置建议
- 先与 backend_type 对照。
- 检查该进程专属的积压与最后进展时间。
- 修复缺失的工作信号或停滞的上游阶段,不要终止正常空闲的 worker。
源码证据
- PostgreSQL 18.6 · src/backend/replication/walreceiver.c:600 —
WAIT_EVENT_WAL_RECEIVER_MAIN - PostgreSQL 18.6 · src/backend/utils/activity/wait_event_names.txt:68 —
WAL_RECEIVER_MAIN
关联控制项与信号
9.17 - Activity: WalSenderMain
WalSenderMain
版本PG 13-18
证据2 个源码位置
官方描述译文
在 WAL sender 进程的主循环中等待。
| PG 13 | PG 14 | PG 15 | PG 16 | PG 17 | PG 18 |
|---|---|---|---|---|---|
| ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
触发机制
WAIT_EVENT_WAL_SENDER_MAIN 位于 src/backend/replication/walsender.c:2963,是经 grep 核验的报告路径。公共身份/资源映射位于 src/backend/utils/activity/wait_event_names.txt:69。探针覆盖的操作是:在 WAL sender 进程的主循环中等待。WalSenderMain 后台路径在主循环暂时无事可做、进入 latch wait 前报告此事件;信号、计时器或新工作会唤醒进程并进入下一轮循环。
正常还是麻烦?
- 正常: 对匹配的后台进程而言,这通常是预期空闲。
- 需要调查: 只有工作队列、关闭或故障切换时限没有推进但进程一直停在这里,或事件出现在不匹配的后端类型上时,才需要调查。
诊断 SQL
处置建议
- 先与 backend_type 对照。
- 检查该进程专属的积压与最后进展时间。
- 修复缺失的工作信号或停滞的上游阶段,不要终止正常空闲的 worker。
源码证据
- PostgreSQL 18.6 · src/backend/replication/walsender.c:2963 —
WAIT_EVENT_WAL_SENDER_MAIN - PostgreSQL 18.6 · src/backend/utils/activity/wait_event_names.txt:69 —
WAL_SENDER_MAIN
关联控制项与信号
9.18 - Activity: WalSummarizerWal
WalSummarizerWal
版本PG 17-18
证据2 个源码位置
官方描述译文
在 WAL summarizer 中等待生成更多 WAL。
| PG 13 | PG 14 | PG 15 | PG 16 | PG 17 | PG 18 |
|---|---|---|---|---|---|
| — | — | — | — | ✓ | ✓ |
触发机制
WAIT_EVENT_WAL_SUMMARIZER_WAL 位于 src/backend/postmaster/walsummarizer.c:1798,是经 grep 核验的报告路径。公共身份/资源映射位于 src/backend/utils/activity/wait_event_names.txt:70。探针覆盖的操作是:在 WAL summarizer 中等待生成更多 WAL。WalSummarizerWal 后台路径在主循环暂时无事可做、进入 latch wait 前报告此事件;信号、计时器或新工作会唤醒进程并进入下一轮循环。
正常还是麻烦?
- 正常: 对匹配的后台进程而言,这通常是预期空闲。
- 需要调查: 只有工作队列、关闭或故障切换时限没有推进但进程一直停在这里,或事件出现在不匹配的后端类型上时,才需要调查。
诊断 SQL
处置建议
- 先与 backend_type 对照。
- 检查该进程专属的积压与最后进展时间。
- 修复缺失的工作信号或停滞的上游阶段,不要终止正常空闲的 worker。
源码证据
- PostgreSQL 18.6 · src/backend/postmaster/walsummarizer.c:1798 —
WAIT_EVENT_WAL_SUMMARIZER_WAL - PostgreSQL 18.6 · src/backend/utils/activity/wait_event_names.txt:70 —
WAL_SUMMARIZER_WAL
关联控制项与信号
9.19 - Activity: WalWriterMain
WalWriterMain
版本PG 13-18
证据2 个源码位置
官方描述译文
在 WAL writer 进程的主循环中等待。
| PG 13 | PG 14 | PG 15 | PG 16 | PG 17 | PG 18 |
|---|---|---|---|---|---|
| ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
触发机制
WAIT_EVENT_WAL_WRITER_MAIN 位于 src/backend/postmaster/walwriter.c:271,是经 grep 核验的报告路径。公共身份/资源映射位于 src/backend/utils/activity/wait_event_names.txt:71。探针覆盖的操作是:在 WAL writer 进程的主循环中等待。WalWriterMain 后台路径在主循环暂时无事可做、进入 latch wait 前报告此事件;信号、计时器或新工作会唤醒进程并进入下一轮循环。
正常还是麻烦?
- 正常: 对匹配的后台进程而言,这通常是预期空闲。
- 需要调查: 只有工作队列、关闭或故障切换时限没有推进但进程一直停在这里,或事件出现在不匹配的后端类型上时,才需要调查。
诊断 SQL
处置建议
- 先与 backend_type 对照。
- 检查该进程专属的积压与最后进展时间。
- 修复缺失的工作信号或停滞的上游阶段,不要终止正常空闲的 worker。
源码证据
- PostgreSQL 18.6 · src/backend/postmaster/walwriter.c:271 —
WAIT_EVENT_WAL_WRITER_MAIN - PostgreSQL 18.6 · src/backend/utils/activity/wait_event_names.txt:71 —
WAL_WRITER_MAIN
关联控制项与信号
10 - Timeout 等待
Timeout 通常表示 PostgreSQL 有意延迟工作,直到计时器到期。关键问题不是“内核为什么慢”,而是“哪条策略或安全机制插入了这段延迟”。
找到策略责任方
Vacuum 成本延迟、恢复延迟、备份节流、检查点摊平、重试间隔与 pg_sleep() 都是设计好的等待。当策略不再匹配服务目标,或另一瓶颈让延迟过度重复时,它们才成为问题。
- 正常: 配置策略正在生效,而且有效工作按预期速率推进。
- 关注: 前台延迟包含有意休眠,或维护任务大量时间都在节流而逐渐落后。
- 紧急: 恢复/备份/检查点错过时限、spin delay 持续,或运维人员并未打算启用这条策略。
值得先认出的事件
| 事件 | 策略 |
|---|---|
| VacuumDelay | 基于成本的 vacuum 节流 |
| CheckpointWriteDelay | 把检查点写入摊平到整个间隔 |
| RecoveryApplyDelay | 有意延迟备库回放 |
| RecoveryRetrieveRetryInterval | 对不可用 WAL 源进行重试 |
| BaseBackupThrottle | 备份传输限速 |
| PgSleep | SQL 或内部 sleep 函数 |
| SpinDelay | 获取竞争 spinlock 时退避 |
常见误读
Timeout不表示 statement timeout 或 lock timeout 已经触发;它表示进程此刻在计时器上休眠。- 减少 vacuum delay 能恢复维护吞吐,但也可能增加 I/O 与 CPU 压力。
RecoveryApplyDelay可能是有意的灾备策略。- 持续的
SpinDelay应当升级处理:spinlock 正常只会被持有极短时间。
10.1 - Timeout: BaseBackupThrottle
BaseBackupThrottle
版本PG 13-18
证据2 个源码位置
官方描述译文
基础备份期间,因限速而等待。
| PG 13 | PG 14 | PG 15 | PG 16 | PG 17 | PG 18 |
|---|---|---|---|---|---|
| ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
触发机制
WAIT_EVENT_BASE_BACKUP_THROTTLE 位于 src/backend/backup/basebackup_throttle.c:178,是经 grep 核验的报告路径。公共身份/资源映射位于 src/backend/utils/activity/wait_event_names.txt:175。探针覆盖的操作是:基础备份期间,因限速而等待。BaseBackupThrottle 路径有意等待计时器、重试间隔、节流或安全退避;latch 超时后才重新评估工作。
正常还是麻烦?
- 正常: 当配置策略是有意的,而且有效工作按预期速率推进时,这项等待正常。
- 需要调查: 策略导致维护、恢复、备份或延迟目标无法达成,或者 spin delay 持续时,应当调查。
诊断 SQL
处置建议
- 确认拥有该计时器的 GUC 或函数。
- 比较有效工作量与延迟时间。
- 先检查它原本要控制的 CPU、I/O 与持久性压力,再调整策略。
源码证据
- PostgreSQL 18.6 · src/backend/backup/basebackup_throttle.c:178 —
WAIT_EVENT_BASE_BACKUP_THROTTLE - PostgreSQL 18.6 · src/backend/utils/activity/wait_event_names.txt:175 —
BASE_BACKUP_THROTTLE
关联控制项与信号
- GUC: 无直接关联项。
- 指标: [metric:waiting_sessions] · [metric:wait_event_share]
10.2 - Timeout: CheckpointWriteDelay
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
处置建议
- 确认拥有该计时器的 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
关联控制项与信号
10.3 - Timeout: PgSleep
PgSleep
版本PG 13-18
证据2 个源码位置
官方描述译文
因调用 pg_sleep 或同类函数而等待。
| PG 13 | PG 14 | PG 15 | PG 16 | PG 17 | PG 18 |
|---|---|---|---|---|---|
| ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
触发机制
WAIT_EVENT_PG_SLEEP 位于 src/backend/utils/adt/misc.c:409,是经 grep 核验的报告路径。公共身份/资源映射位于 src/backend/utils/activity/wait_event_names.txt:177。探针覆盖的操作是:因调用 pg_sleep 或同类函数而等待。PgSleep 路径有意等待计时器、重试间隔、节流或安全退避;latch 超时后才重新评估工作。
正常还是麻烦?
- 正常: 当配置策略是有意的,而且有效工作按预期速率推进时,这项等待正常。
- 需要调查: 策略导致维护、恢复、备份或延迟目标无法达成,或者 spin delay 持续时,应当调查。
诊断 SQL
处置建议
- 确认拥有该计时器的 GUC 或函数。
- 比较有效工作量与延迟时间。
- 先检查它原本要控制的 CPU、I/O 与持久性压力,再调整策略。
源码证据
- PostgreSQL 18.6 · src/backend/utils/activity/wait_event_names.txt:177 —
PG_SLEEP - PostgreSQL 18.6 · src/backend/utils/adt/misc.c:409 —
WAIT_EVENT_PG_SLEEP
关联控制项与信号
- GUC: 无直接关联项。
- 指标: [metric:waiting_sessions] · [metric:wait_event_share]
10.4 - Timeout: RecoveryApplyDelay
RecoveryApplyDelay
版本PG 13-18
证据2 个源码位置
官方描述译文
恢复期间,因延迟设置而等待应用 WAL。
| PG 13 | PG 14 | PG 15 | PG 16 | PG 17 | PG 18 |
|---|---|---|---|---|---|
| ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
触发机制
WAIT_EVENT_RECOVERY_APPLY_DELAY 位于 src/backend/access/transam/xlogrecovery.c:3092,是经 grep 核验的报告路径。公共身份/资源映射位于 src/backend/utils/activity/wait_event_names.txt:178。探针覆盖的操作是:恢复期间,因延迟设置而等待应用 WAL。RecoveryApplyDelay 路径有意等待计时器、重试间隔、节流或安全退避;latch 超时后才重新评估工作。
正常还是麻烦?
- 正常: 当配置策略是有意的,而且有效工作按预期速率推进时,这项等待正常。
- 需要调查: 策略导致维护、恢复、备份或延迟目标无法达成,或者 spin delay 持续时,应当调查。
诊断 SQL
处置建议
- 确认拥有该计时器的 GUC 或函数。
- 比较有效工作量与延迟时间。
- 先检查它原本要控制的 CPU、I/O 与持久性压力,再调整策略。
源码证据
- PostgreSQL 18.6 · src/backend/access/transam/xlogrecovery.c:3092 —
WAIT_EVENT_RECOVERY_APPLY_DELAY - PostgreSQL 18.6 · src/backend/utils/activity/wait_event_names.txt:178 —
RECOVERY_APPLY_DELAY
关联控制项与信号
- GUC: 无直接关联项。
- 指标: [metric:waiting_sessions] · [metric:wait_event_share]
10.5 - Timeout: RecoveryRetrieveRetryInterval
RecoveryRetrieveRetryInterval
版本PG 13-18
证据2 个源码位置
官方描述译文
恢复期间,当所有来源(pg_wal、归档或流式传输)均无 WAL 数据可用时等待。
| PG 13 | PG 14 | PG 15 | PG 16 | PG 17 | PG 18 |
|---|---|---|---|---|---|
| ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
触发机制
WAIT_EVENT_RECOVERY_RETRIEVE_RETRY_INTERVAL 位于 src/backend/access/transam/xlogrecovery.c:3764,是经 grep 核验的报告路径。公共身份/资源映射位于 src/backend/utils/activity/wait_event_names.txt:179。探针覆盖的操作是:恢复期间,当所有来源(pg_wal、归档或流式传输)均无 WAL 数据可用时等待。RecoveryRetrieveRetryInterval 路径有意等待计时器、重试间隔、节流或安全退避;latch 超时后才重新评估工作。
正常还是麻烦?
- 正常: 当配置策略是有意的,而且有效工作按预期速率推进时,这项等待正常。
- 需要调查: 策略导致维护、恢复、备份或延迟目标无法达成,或者 spin delay 持续时,应当调查。
诊断 SQL
处置建议
- 确认拥有该计时器的 GUC 或函数。
- 比较有效工作量与延迟时间。
- 先检查它原本要控制的 CPU、I/O 与持久性压力,再调整策略。
源码证据
- PostgreSQL 18.6 · src/backend/access/transam/xlogrecovery.c:3764 —
WAIT_EVENT_RECOVERY_RETRIEVE_RETRY_INTERVAL - PostgreSQL 18.6 · src/backend/utils/activity/wait_event_names.txt:179 —
RECOVERY_RETRIEVE_RETRY_INTERVAL
关联控制项与信号
- GUC: 无直接关联项。
- 指标: [metric:waiting_sessions] · [metric:wait_event_share]
10.6 - Timeout: RegisterSyncRequest
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
处置建议
- 确认拥有该计时器的 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]
10.7 - Timeout: SpinDelay
SpinDelay
版本PG 16-18
证据2 个源码位置
官方描述译文
获取发生争用的 spinlock 时等待。
| PG 13 | PG 14 | PG 15 | PG 16 | PG 17 | PG 18 |
|---|---|---|---|---|---|
| — | — | — | ✓ | ✓ | ✓ |
触发机制
WAIT_EVENT_SPIN_DELAY 位于 src/backend/storage/lmgr/s_lock.c:148,是经 grep 核验的报告路径。公共身份/资源映射位于 src/backend/utils/activity/wait_event_names.txt:181。探针覆盖的操作是:获取发生争用的 spinlock 时等待。SpinDelay 路径有意等待计时器、重试间隔、节流或安全退避;latch 超时后才重新评估工作。
正常还是麻烦?
- 正常: 当配置策略是有意的,而且有效工作按预期速率推进时,这项等待正常。
- 需要调查: 策略导致维护、恢复、备份或延迟目标无法达成,或者 spin delay 持续时,应当调查。
诊断 SQL
处置建议
- 确认拥有该计时器的 GUC 或函数。
- 比较有效工作量与延迟时间。
- 先检查它原本要控制的 CPU、I/O 与持久性压力,再调整策略。
源码证据
- PostgreSQL 18.6 · src/backend/storage/lmgr/s_lock.c:148 —
WAIT_EVENT_SPIN_DELAY - PostgreSQL 18.6 · src/backend/utils/activity/wait_event_names.txt:181 —
SPIN_DELAY
关联控制项与信号
- GUC: 无直接关联项。
- 指标: [metric:waiting_sessions] · [metric:wait_event_share]
10.8 - Timeout: VacuumDelay
VacuumDelay
版本PG 13-18
证据2 个源码位置
官方描述译文
在基于成本的 vacuum 延迟点等待。
| PG 13 | PG 14 | PG 15 | PG 16 | PG 17 | PG 18 |
|---|---|---|---|---|---|
| ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
触发机制
WAIT_EVENT_VACUUM_DELAY 位于 src/backend/commands/vacuum.c:2495,是经 grep 核验的报告路径。公共身份/资源映射位于 src/backend/utils/activity/wait_event_names.txt:182。探针覆盖的操作是:在基于成本的 vacuum 延迟点等待。VacuumDelay 路径有意等待计时器、重试间隔、节流或安全退避;latch 超时后才重新评估工作。
正常还是麻烦?
- 正常: 当配置策略是有意的,而且有效工作按预期速率推进时,这项等待正常。
- 需要调查: 策略导致维护、恢复、备份或延迟目标无法达成,或者 spin delay 持续时,应当调查。
诊断 SQL
处置建议
- 确认拥有该计时器的 GUC 或函数。
- 比较有效工作量与延迟时间。
- 先检查它原本要控制的 CPU、I/O 与持久性压力,再调整策略。
源码证据
- PostgreSQL 18.6 · src/backend/commands/vacuum.c:2495 —
WAIT_EVENT_VACUUM_DELAY - PostgreSQL 18.6 · src/backend/utils/activity/wait_event_names.txt:182 —
VACUUM_DELAY
关联控制项与信号
10.9 - Timeout: VacuumTruncate
VacuumTruncate
版本PG 15-18
证据2 个源码位置
官方描述译文
等待获取独占锁,以截去正在执行 vacuum 的表末尾所有空页。
| PG 13 | PG 14 | PG 15 | PG 16 | PG 17 | PG 18 |
|---|---|---|---|---|---|
| — | — | ✓ | ✓ | ✓ | ✓ |
触发机制
WAIT_EVENT_VACUUM_TRUNCATE 位于 src/backend/access/heap/vacuumlazy.c:3280,是经 grep 核验的报告路径。公共身份/资源映射位于 src/backend/utils/activity/wait_event_names.txt:183。探针覆盖的操作是:等待获取独占锁,以截去正在执行 vacuum 的表末尾所有空页。VacuumTruncate 路径有意等待计时器、重试间隔、节流或安全退避;latch 超时后才重新评估工作。
正常还是麻烦?
- 正常: 当配置策略是有意的,而且有效工作按预期速率推进时,这项等待正常。
- 需要调查: 策略导致维护、恢复、备份或延迟目标无法达成,或者 spin delay 持续时,应当调查。
诊断 SQL
处置建议
- 确认拥有该计时器的 GUC 或函数。
- 比较有效工作量与延迟时间。
- 先检查它原本要控制的 CPU、I/O 与持久性压力,再调整策略。
源码证据
- PostgreSQL 18.6 · src/backend/access/heap/vacuumlazy.c:3280 —
WAIT_EVENT_VACUUM_TRUNCATE - PostgreSQL 18.6 · src/backend/utils/activity/wait_event_names.txt:183 —
VACUUM_TRUNCATE
关联控制项与信号
10.10 - Timeout: WalSummarizerError
WalSummarizerError
版本PG 17-18
证据2 个源码位置
官方描述译文
WAL summarizer 出错后等待。
| PG 13 | PG 14 | PG 15 | PG 16 | PG 17 | PG 18 |
|---|---|---|---|---|---|
| — | — | — | — | ✓ | ✓ |
触发机制
WAIT_EVENT_WAL_SUMMARIZER_ERROR 位于 src/backend/postmaster/walsummarizer.c:337,是经 grep 核验的报告路径。公共身份/资源映射位于 src/backend/utils/activity/wait_event_names.txt:184。探针覆盖的操作是:WAL summarizer 出错后等待。WalSummarizerError 路径有意等待计时器、重试间隔、节流或安全退避;latch 超时后才重新评估工作。
正常还是麻烦?
- 正常: 当配置策略是有意的,而且有效工作按预期速率推进时,这项等待正常。
- 需要调查: 策略导致维护、恢复、备份或延迟目标无法达成,或者 spin delay 持续时,应当调查。
诊断 SQL
处置建议
- 确认拥有该计时器的 GUC 或函数。
- 比较有效工作量与延迟时间。
- 先检查它原本要控制的 CPU、I/O 与持久性压力,再调整策略。
源码证据
- PostgreSQL 18.6 · src/backend/postmaster/walsummarizer.c:337 —
WAIT_EVENT_WAL_SUMMARIZER_ERROR - PostgreSQL 18.6 · src/backend/utils/activity/wait_event_names.txt:184 —
WAL_SUMMARIZER_ERROR
关联控制项与信号
11 - BufferPin 等待
BufferPin 类只有一个核心事件,也叫 BufferPin。它表示 PostgreSQL 需要独占访问某个共享缓冲区,但另一个后端仍钉住该页,使其不能被移除或进行结构修改。
持续出现就值得怀疑
执行器检查页面时,pin 很正常而且生命周期很短。持续的独占 pin 等待并不常见,可能来自另一个会话保持游标打开、执行器停在某页,或并发索引工作需要删除/回收该页。
- 正常: 扫描或索引维护期间孤立的亚秒级样本。
- 关注: 同一前台会话在 BufferPin 上停留超过一秒。
- 紧急: 大量会话排队、索引清理/DDL 无法推进,或持有游标的会话空闲却仍握着 pin。
应该检查什么
- 确认等待查询及其关系锁。
- 查找长游标、
idle in transaction,以及访问同一关系的执行器会话。 - 把事件开始时间与
VACUUM、索引删除/回收、DDL 或长扫描关联。 - 取消任何会话前,先保全持有者的查询与事务上下文。
常见误读
- Buffer pin 不是重量级锁,在
pg_locks中没有直接的持有者行。 - 调大
shared_buffers不能让已持有的 pin 消失。 - 等待者可能是 vacuum/索引维护,而持有 pin 的应用会话看起来毫不起眼。
11.1 - BufferPin: BufferPin
BufferPin
版本PG 13-18
证据2 个源码位置
官方描述译文
等待获取 buffer 上的独占 pin。
| PG 13 | PG 14 | PG 15 | PG 16 | PG 17 | PG 18 |
|---|---|---|---|---|---|
| ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
触发机制
WAIT_EVENT_BUFFER_PIN 位于 src/backend/storage/buffer/bufmgr.c:5819,是经 grep 核验的报告路径。公共身份/资源映射位于 src/backend/utils/activity/wait_event_names.txt:286。探针覆盖的操作是:等待获取 buffer 上的独占 pin。缓冲区管理器需要独占 pin,但另一个后端仍在同一共享缓冲区上持有 pin;当前后端会休眠到最后一个冲突 pin 被释放。
正常还是麻烦?
- 正常: 扫描或索引维护期间,孤立的亚秒级样本可能正常。
- 需要调查: 等待超过一秒就值得怀疑,尤其要检查游标或空闲事务是否持续钉住页面。
诊断 SQL
处置建议
- 保全等待查询与关系上下文。
- 查找访问同一关系的长游标与 idle in transaction 会话。
- 确认最安全的持有者或维护受害者后再取消。
源码证据
- PostgreSQL 18.6 · src/backend/storage/buffer/bufmgr.c:5819 —
WAIT_EVENT_BUFFER_PIN - PostgreSQL 18.6 · src/backend/utils/activity/wait_event_names.txt:286 —
BUFFER_PIN
关联控制项与信号
- GUC: 无直接关联项。
- 指标: [metric:waiting_sessions] · [metric:wait_event_share]
12 - 扩展等待事件
PostgreSQL 为扩展代码报告的等待保留了 Extension 类型。内置清单中包含通用的 Extension 身份;较新版本还提供 API,让扩展注册人类可读的自定义名称。
本大典的边界
本站枚举 PostgreSQL 13–18 随核心发布的名称,不会试图穷举第三方扩展在运行时创建的名称,因为它取决于已加载二进制,同一版本的不同集群也可能不同。
看到扩展定义的等待时:
- 记录
extversion与扩展包的精确构建版本。 - 在 PG17+ 查询本机
pg_wait_events;它是该实例已注册名称的权威来源。 - 在扩展源码中搜索注册调用,以及配对的
pgstat_report_wait_start()/pgstat_report_wait_end()。 - 用扩展自身 runbook 判断正常/异常;PostgreSQL 核心描述无法替它给出边界。
pg_wait_events 从 PostgreSQL 17 开始提供。在 PG13–16 上,应从 pg_stat_activity 取得等待名称,再直接检查扩展版本与源码。
给扩展作者的安全契约
在阻塞操作紧前方报告等待,并保证包括错误在内的每条退出路径都会清除状态。名称应足够稳定,能被仪表盘与 runbook 引用;同时说明哪个资源或对端能够推进。没有这种责任契约的自定义名称只是可观测性债务。
13 - 关联 GUC
等待事件处置建议引用的配置控制项。 本索引包含 21 个条目.
13.1 - [[guc:autovacuum_freeze_max_age]]
触发防回卷 vacuum 的事务年龄。
被哪些等待事件引用
13.2 - [[guc:autovacuum_multixact_freeze_max_age]]
触发 multixact 防回卷 vacuum 的年龄。
被哪些等待事件引用
13.3 - [[guc:autovacuum_naptime]]
autovacuum launcher 对每个数据库两轮调度之间的最短间隔。
被哪些等待事件引用
13.4 - [[guc:checkpoint_timeout]]
自动 WAL 检查点之间的最长时间。
被哪些等待事件引用
13.5 - [[guc:deadlock_timeout]]
PostgreSQL 对锁等待执行死锁检查前的延迟。
被哪些等待事件引用
13.6 - [[guc:full_page_writes]]
控制检查点后用于崩溃安全的全页镜像。
被哪些等待事件引用
13.7 - [[guc:idle_in_transaction_session_timeout]]
终止在打开事务中空闲过久的会话。
被哪些等待事件引用
13.8 - [[guc:lock_timeout]]
中止等待获取锁时间过长的语句。
被哪些等待事件引用
13.9 - [[guc:max_connections]]
数据库最大并发连接数。
被哪些等待事件引用
13.10 - [[guc:max_locks_per_transaction]]
每个事务在共享锁表中的容量预算。
被哪些等待事件引用
13.11 - [[guc:max_parallel_workers_per_gather]]
每个 Gather/Gather Merge 节点可用的最大并行 worker 数。
被哪些等待事件引用
13.12 - [[guc:max_wal_size]]
可触发检查点的 WAL 软容量上限。
被哪些等待事件引用
13.13 - [[guc:shared_buffers]]
PostgreSQL 共享缓冲区缓存大小。
被哪些等待事件引用
13.14 - [[guc:synchronous_commit]]
控制提交等待本地或远端 WAL 持久化的时点。
被哪些等待事件引用
- Activity/RecoveryWalStream
- Activity/WalReceiverMain
- Activity/WalSenderMain
- Activity/WalSummarizerWal
- Activity/WalWriterMain
- Client/LibpqwalreceiverConnect
- Client/LibpqwalreceiverReceive
- Client/WalSenderWaitForWal
- Client/WalSenderWriteData
- IO/WalBootstrapSync
- IO/WalBootstrapWrite
- IO/WalCopyRead
- IO/WalCopySync
- IO/WalCopyWrite
- IO/WalInitSync
- IO/WalInitWrite
- IO/WalRead
- IO/WalSummaryRead
- IO/WalSummaryWrite
- IO/WalSync
- IO/WalSyncMethodAssign
- IO/WalWrite
- IO/WalsenderTimelineHistoryRead
- IPC/BackupWaitWalArchive
- IPC/WalReceiverExit
- IPC/WalReceiverUpstreamCatchup
- IPC/WalReceiverWaitStart
- IPC/WalSummaryReady
- LWLock/SyncRep
- LWLock/WALSummarizer
- LWLock/WALWrite
- Timeout/WalSummarizerError
13.15 - [[guc:synchronous_standby_names]]
选择能够满足同步提交的备库。
被哪些等待事件引用
13.16 - [[guc:vacuum_freeze_table_age]]
VACUUM 开始为冻结而扫描的表年龄。
被哪些等待事件引用
13.17 - [[guc:vacuum_multixact_freeze_table_age]]
VACUUM 开始为 multixact 冻结而扫描的表年龄。
被哪些等待事件引用
13.18 - [[guc:wal_buffers]]
保存尚未写入磁盘 WAL 的共享内存缓冲区。
被哪些等待事件引用
- Activity/RecoveryWalStream
- Activity/WalReceiverMain
- Activity/WalSenderMain
- Activity/WalSummarizerWal
- Activity/WalWriterMain
- Client/LibpqwalreceiverConnect
- Client/LibpqwalreceiverReceive
- Client/WalSenderWaitForWal
- Client/WalSenderWriteData
- IO/WalBootstrapSync
- IO/WalBootstrapWrite
- IO/WalCopyRead
- IO/WalCopySync
- IO/WalCopyWrite
- IO/WalInitSync
- IO/WalInitWrite
- IO/WalRead
- IO/WalSummaryRead
- IO/WalSummaryWrite
- IO/WalSync
- IO/WalSyncMethodAssign
- IO/WalWrite
- IO/WalsenderTimelineHistoryRead
- IPC/BackupWaitWalArchive
- IPC/WalReceiverExit
- IPC/WalReceiverUpstreamCatchup
- IPC/WalReceiverWaitStart
- IPC/WalSummaryReady
- LWLock/WALBufMapping
- LWLock/WALInsert
- LWLock/WALSummarizer
- Timeout/WalSummarizerError
13.19 - [[guc:wal_sender_timeout]]
超时后断开无活动的复制连接。
被哪些等待事件引用
13.20 - [[guc:wal_writer_delay]]
WAL writer 两轮活动之间的延迟。
被哪些等待事件引用
13.21 - [[guc:wal_writer_flush_after]]
WAL writer 请求刷盘前累计写入的 WAL 量。
被哪些等待事件引用
14 - 关联指标
用于判断等待正常还是有害的观测信号。 本索引包含 22 个条目.
14.1 - [[metric:active_backends]]
当前正在执行查询的后端数。
被哪些等待事件引用
14.2 - [[metric:blocked_sessions]]
存在一个或多个阻塞 PID 的会话数。
被哪些等待事件引用
14.4 - [[metric:buffer_hit_ratio]]
从 shared buffers 命中的块与实际读取块的比例。
被哪些等待事件引用
14.5 - [[metric:checkpoint_time]]
检查点写入与同步持续时间。
被哪些等待事件引用
14.7 - [[metric:io_read_time]]
来自 pg_stat_io 或操作系统遥测的读取延迟。
被哪些等待事件引用
- IO/AioIoCompletion
- IO/AioIoUringExecution
- IO/AioIoUringSubmit
- IO/BasebackupRead
- IO/BasebackupSync
- IO/BasebackupWrite
- IO/BuffileRead
- IO/BuffileTruncate
- IO/BuffileWrite
- IO/ControlFileRead
- IO/ControlFileSync
- IO/ControlFileSyncUpdate
- IO/ControlFileWrite
- IO/ControlFileWriteUpdate
- IO/CopyFileCopy
- IO/CopyFileRead
- IO/CopyFileWrite
- IO/DataFileExtend
- IO/DataFileFlush
- IO/DataFileImmediateSync
- IO/DataFilePrefetch
- IO/DataFileRead
- IO/DataFileSync
- IO/DataFileTruncate
- IO/DataFileWrite
- IO/DsmAllocate
- IO/DsmFillZeroWrite
- IO/LockFileAddtodatadirRead
- IO/LockFileAddtodatadirSync
- IO/LockFileAddtodatadirWrite
- IO/LockFileCreateRead
- IO/LockFileCreateSync
- IO/LockFileCreateWrite
- IO/LockFileRecheckdatadirRead
- IO/LogicalChangesRead
- IO/LogicalChangesWrite
- IO/LogicalRewriteCheckpointSync
- IO/LogicalRewriteMappingSync
- IO/LogicalRewriteMappingWrite
- IO/LogicalRewriteSync
- IO/LogicalRewriteTruncate
- IO/LogicalRewriteWrite
- IO/LogicalSubxactRead
- IO/LogicalSubxactWrite
- IO/RelationMapRead
- IO/RelationMapReplace
- IO/RelationMapSync
- IO/RelationMapWrite
- IO/ReorderBufferRead
- IO/ReorderBufferWrite
- IO/ReorderLogicalMappingRead
- IO/ReplicationSlotRead
- IO/ReplicationSlotRestoreSync
- IO/ReplicationSlotSync
- IO/ReplicationSlotWrite
- IO/SlruFlushSync
- IO/SlruRead
- IO/SlruSync
- IO/SlruWrite
- IO/SnapbuildRead
- IO/SnapbuildSync
- IO/SnapbuildWrite
- IO/TimelineHistoryFileSync
- IO/TimelineHistoryFileWrite
- IO/TimelineHistoryRead
- IO/TimelineHistorySync
- IO/TimelineHistoryWrite
- IO/TwophaseFileRead
- IO/TwophaseFileSync
- IO/TwophaseFileWrite
- IO/VersionFileSync
- IO/VersionFileWrite
- IO/WalBootstrapSync
- IO/WalBootstrapWrite
- IO/WalCopyRead
- IO/WalCopySync
- IO/WalCopyWrite
- IO/WalInitSync
- IO/WalInitWrite
- IO/WalRead
- IO/WalSummaryRead
- IO/WalSummaryWrite
- IO/WalSync
- IO/WalSyncMethodAssign
- IO/WalWrite
- IO/WalsenderTimelineHistoryRead
14.8 - [[metric:io_write_time]]
来自 pg_stat_io 或操作系统遥测的写入延迟。
被哪些等待事件引用
- IO/AioIoCompletion
- IO/AioIoUringExecution
- IO/AioIoUringSubmit
- IO/BasebackupRead
- IO/BasebackupSync
- IO/BasebackupWrite
- IO/BuffileRead
- IO/BuffileTruncate
- IO/BuffileWrite
- IO/ControlFileRead
- IO/ControlFileSync
- IO/ControlFileSyncUpdate
- IO/ControlFileWrite
- IO/ControlFileWriteUpdate
- IO/CopyFileCopy
- IO/CopyFileRead
- IO/CopyFileWrite
- IO/DataFileExtend
- IO/DataFileFlush
- IO/DataFileImmediateSync
- IO/DataFilePrefetch
- IO/DataFileRead
- IO/DataFileSync
- IO/DataFileTruncate
- IO/DataFileWrite
- IO/DsmAllocate
- IO/DsmFillZeroWrite
- IO/LockFileAddtodatadirRead
- IO/LockFileAddtodatadirSync
- IO/LockFileAddtodatadirWrite
- IO/LockFileCreateRead
- IO/LockFileCreateSync
- IO/LockFileCreateWrite
- IO/LockFileRecheckdatadirRead
- IO/LogicalChangesRead
- IO/LogicalChangesWrite
- IO/LogicalRewriteCheckpointSync
- IO/LogicalRewriteMappingSync
- IO/LogicalRewriteMappingWrite
- IO/LogicalRewriteSync
- IO/LogicalRewriteTruncate
- IO/LogicalRewriteWrite
- IO/LogicalSubxactRead
- IO/LogicalSubxactWrite
- IO/RelationMapRead
- IO/RelationMapReplace
- IO/RelationMapSync
- IO/RelationMapWrite
- IO/ReorderBufferRead
- IO/ReorderBufferWrite
- IO/ReorderLogicalMappingRead
- IO/ReplicationSlotRead
- IO/ReplicationSlotRestoreSync
- IO/ReplicationSlotSync
- IO/ReplicationSlotWrite
- IO/SlruFlushSync
- IO/SlruRead
- IO/SlruSync
- IO/SlruWrite
- IO/SnapbuildRead
- IO/SnapbuildSync
- IO/SnapbuildWrite
- IO/TimelineHistoryFileSync
- IO/TimelineHistoryFileWrite
- IO/TimelineHistoryRead
- IO/TimelineHistorySync
- IO/TimelineHistoryWrite
- IO/TwophaseFileRead
- IO/TwophaseFileSync
- IO/TwophaseFileWrite
- IO/VersionFileSync
- IO/VersionFileWrite
- IO/WalBootstrapSync
- IO/WalBootstrapWrite
- IO/WalCopyRead
- IO/WalCopySync
- IO/WalCopyWrite
- IO/WalInitSync
- IO/WalInitWrite
- IO/WalRead
- IO/WalSummaryRead
- IO/WalSummaryWrite
- IO/WalSync
- IO/WalSyncMethodAssign
- IO/WalWrite
- IO/WalsenderTimelineHistoryRead
14.9 - [[metric:locks_per_backend]]
按后端分组的 pg_locks 行数。
被哪些等待事件引用
14.10 - [[metric:multixact_member_io]]
multixact member 存储的读写量。
被哪些等待事件引用
14.11 - [[metric:oldest_multixact_age]]
仍需保留的最老 multixact 年龄。
被哪些等待事件引用
14.12 - [[metric:oldest_transaction_age]]
最老打开事务或可见性边界的年龄。
被哪些等待事件引用
- Activity/AutovacuumMain
- IO/LogicalSubxactRead
- IO/LogicalSubxactWrite
- IPC/XactGroupUpdate
- LWLock/Autovacuum
- LWLock/AutovacuumSchedule
- LWLock/BtreeVacuum
- LWLock/ParallelVacuumDSA
- LWLock/PerXactPredicateList
- LWLock/ProcArray
- LWLock/SerializableXactHash
- LWLock/WrapLimitsVacuum
- LWLock/XactBuffer
- LWLock/XactSLRU
- LWLock/XactTruncation
- Timeout/VacuumDelay
- Timeout/VacuumTruncate
14.13 - [[metric:replication_flush_lag]]
主库 WAL 与备库 flush 位置之间的距离或时间。
被哪些等待事件引用
14.15 - [[metric:statement_wal_bytes]]
启用 pg_stat_statements WAL 统计时归属于语句的 WAL 字节数。
被哪些等待事件引用
14.16 - [[metric:wait_event_share]]
重复活动会话采样中归属于某事件的比例。
被哪些等待事件引用
- Activity/ArchiverMain
- Activity/AutovacuumMain
- Activity/BgwriterHibernate
- Activity/BgwriterMain
- Activity/CheckpointerMain
- Activity/CheckpointerShutdown
- Activity/IoWorkerMain
- Activity/LogicalApplyMain
- Activity/LogicalLauncherMain
- Activity/LogicalParallelApplyMain
- Activity/PgStatMain
- Activity/RecoveryWalStream
- Activity/ReplicationSlotsyncMain
- Activity/ReplicationSlotsyncShutdown
- Activity/SysloggerMain
- Activity/WalReceiverMain
- Activity/WalSenderMain
- Activity/WalSummarizerWal
- Activity/WalWriterMain
- BufferPin/BufferPin
- Client/ClientRead
- Client/ClientWrite
- Client/GssOpenServer
- Client/LibpqwalreceiverConnect
- Client/LibpqwalreceiverReceive
- Client/SslOpenServer
- Client/WaitForStandbyConfirmation
- Client/WalSenderWaitForWal
- Client/WalSenderWriteData
- Extension/Extension
- IO/AioIoCompletion
- IO/AioIoUringExecution
- IO/AioIoUringSubmit
- IO/BasebackupRead
- IO/BasebackupSync
- IO/BasebackupWrite
- IO/BuffileRead
- IO/BuffileTruncate
- IO/BuffileWrite
- IO/ControlFileRead
- IO/ControlFileSync
- IO/ControlFileSyncUpdate
- IO/ControlFileWrite
- IO/ControlFileWriteUpdate
- IO/CopyFileCopy
- IO/CopyFileRead
- IO/CopyFileWrite
- IO/DataFileExtend
- IO/DataFileFlush
- IO/DataFileImmediateSync
- IO/DataFilePrefetch
- IO/DataFileRead
- IO/DataFileSync
- IO/DataFileTruncate
- IO/DataFileWrite
- IO/DsmAllocate
- IO/DsmFillZeroWrite
- IO/LockFileAddtodatadirRead
- IO/LockFileAddtodatadirSync
- IO/LockFileAddtodatadirWrite
- IO/LockFileCreateRead
- IO/LockFileCreateSync
- IO/LockFileCreateWrite
- IO/LockFileRecheckdatadirRead
- IO/LogicalChangesRead
- IO/LogicalChangesWrite
- IO/LogicalRewriteCheckpointSync
- IO/LogicalRewriteMappingSync
- IO/LogicalRewriteMappingWrite
- IO/LogicalRewriteSync
- IO/LogicalRewriteTruncate
- IO/LogicalRewriteWrite
- IO/LogicalSubxactRead
- IO/LogicalSubxactWrite
- IO/RelationMapRead
- IO/RelationMapReplace
- IO/RelationMapSync
- IO/RelationMapWrite
- IO/ReorderBufferRead
- IO/ReorderBufferWrite
- IO/ReorderLogicalMappingRead
- IO/ReplicationSlotRead
- IO/ReplicationSlotRestoreSync
- IO/ReplicationSlotSync
- IO/ReplicationSlotWrite
- IO/SlruFlushSync
- IO/SlruRead
- IO/SlruSync
- IO/SlruWrite
- IO/SnapbuildRead
- IO/SnapbuildSync
- IO/SnapbuildWrite
- IO/TimelineHistoryFileSync
- IO/TimelineHistoryFileWrite
- IO/TimelineHistoryRead
- IO/TimelineHistorySync
- IO/TimelineHistoryWrite
- IO/TwophaseFileRead
- IO/TwophaseFileSync
- IO/TwophaseFileWrite
- IO/VersionFileSync
- IO/VersionFileWrite
- IO/WalBootstrapSync
- IO/WalBootstrapWrite
- IO/WalCopyRead
- IO/WalCopySync
- IO/WalCopyWrite
- IO/WalInitSync
- IO/WalInitWrite
- IO/WalRead
- IO/WalSummaryRead
- IO/WalSummaryWrite
- IO/WalSync
- IO/WalSyncMethodAssign
- IO/WalWrite
- IO/WalsenderTimelineHistoryRead
- IPC/AppendReady
- IPC/ArchiveCleanupCommand
- IPC/ArchiveCommand
- IPC/BackendTermination
- IPC/BackupWaitWalArchive
- IPC/BgworkerShutdown
- IPC/BgworkerStartup
- IPC/BtreePage
- IPC/BufferIo
- IPC/CheckpointDelayComplete
- IPC/CheckpointDelayStart
- IPC/CheckpointDone
- IPC/CheckpointStart
- IPC/ExecuteGather
- IPC/HashBatchAllocate
- IPC/HashBatchElect
- IPC/HashBatchLoad
- IPC/HashBuildAllocate
- IPC/HashBuildElect
- IPC/HashBuildHashInner
- IPC/HashBuildHashOuter
- IPC/HashGrowBatchesDecide
- IPC/HashGrowBatchesElect
- IPC/HashGrowBatchesFinish
- IPC/HashGrowBatchesReallocate
- IPC/HashGrowBatchesRepartition
- IPC/HashGrowBucketsElect
- IPC/HashGrowBucketsReallocate
- IPC/HashGrowBucketsReinsert
- IPC/LogicalApplySendData
- IPC/LogicalParallelApplyStateChange
- IPC/LogicalSyncData
- IPC/LogicalSyncStateChange
- IPC/MessageQueueInternal
- IPC/MessageQueuePutMessage
- IPC/MessageQueueReceive
- IPC/MessageQueueSend
- IPC/MultixactCreation
- IPC/ParallelBitmapScan
- IPC/ParallelCreateIndexScan
- IPC/ParallelFinish
- IPC/ProcSignalBarrier
- IPC/ProcarrayGroupUpdate
- IPC/Promote
- IPC/RecoveryConflictSnapshot
- IPC/RecoveryConflictTablespace
- IPC/RecoveryEndCommand
- IPC/RecoveryPause
- IPC/ReplicationOriginDrop
- IPC/ReplicationSlotDrop
- IPC/RestoreCommand
- IPC/SafeSnapshot
- IPC/SyncRep
- IPC/WalReceiverExit
- IPC/WalReceiverUpstreamCatchup
- IPC/WalReceiverWaitStart
- IPC/WalSummaryReady
- IPC/XactGroupUpdate
- Lock/advisory
- Lock/applytransaction
- Lock/extend
- Lock/frozenid
- Lock/object
- Lock/page
- Lock/relation
- Lock/spectoken
- Lock/transactionid
- Lock/tuple
- Lock/userlock
- Lock/virtualxid
- LWLock/AddinShmemInit
- LWLock/AioUringCompletion
- LWLock/AioWorkerSubmissionQueue
- LWLock/AutoFile
- LWLock/Autovacuum
- LWLock/AutovacuumSchedule
- LWLock/BackgroundWorker
- LWLock/BtreeVacuum
- LWLock/BufferContent
- LWLock/BufferMapping
- LWLock/Checkpoint
- LWLock/CheckpointerComm
- LWLock/CommitTs
- LWLock/CommitTsBuffer
- LWLock/CommitTsSLRU
- LWLock/ControlFile
- LWLock/DSMRegistry
- LWLock/DSMRegistryDSA
- LWLock/DSMRegistryHash
- LWLock/DynamicSharedMemoryControl
- LWLock/InjectionPoint
- LWLock/LockFastPath
- LWLock/LockManager
- LWLock/LogicalRepLauncherDSA
- LWLock/LogicalRepLauncherHash
- LWLock/LogicalRepWorker
- LWLock/MultiXactGen
- LWLock/MultiXactMemberBuffer
- LWLock/MultiXactMemberSLRU
- LWLock/MultiXactOffsetBuffer
- LWLock/MultiXactOffsetSLRU
- LWLock/MultiXactTruncation
- LWLock/NotifyBuffer
- LWLock/NotifyQueue
- LWLock/NotifyQueueTail
- LWLock/NotifySLRU
- LWLock/OidGen
- LWLock/OldSnapshotTimeMap
- LWLock/ParallelAppend
- LWLock/ParallelBtreeScan
- LWLock/ParallelHashJoin
- LWLock/ParallelQueryDSA
- LWLock/ParallelVacuumDSA
- LWLock/PerSessionDSA
- LWLock/PerSessionRecordType
- LWLock/PerSessionRecordTypmod
- LWLock/PerXactPredicateList
- LWLock/PgStatsDSA
- LWLock/PgStatsData
- LWLock/PgStatsHash
- LWLock/PredicateLockManager
- LWLock/ProcArray
- LWLock/RelCacheInit
- LWLock/RelationMapping
- LWLock/ReplicationOrigin
- LWLock/ReplicationOriginState
- LWLock/ReplicationSlotAllocation
- LWLock/ReplicationSlotControl
- LWLock/ReplicationSlotIO
- LWLock/SInvalRead
- LWLock/SInvalWrite
- LWLock/SerialBuffer
- LWLock/SerialControl
- LWLock/SerialSLRU
- LWLock/SerializableFinishedList
- LWLock/SerializablePredicateList
- LWLock/SerializableXactHash
- LWLock/SharedTidBitmap
- LWLock/SharedTupleStore
- LWLock/ShmemIndex
- LWLock/SubtransBuffer
- LWLock/SubtransSLRU
- LWLock/SyncRep
- LWLock/SyncScan
- LWLock/TablespaceCreate
- LWLock/TwoPhaseState
- LWLock/WALBufMapping
- LWLock/WALInsert
- LWLock/WALSummarizer
- LWLock/WALWrite
- LWLock/WaitEventCustom
- LWLock/WrapLimitsVacuum
- LWLock/XactBuffer
- LWLock/XactSLRU
- LWLock/XactTruncation
- LWLock/XidGen
- Timeout/BaseBackupThrottle
- Timeout/CheckpointWriteDelay
- Timeout/PgSleep
- Timeout/RecoveryApplyDelay
- Timeout/RecoveryRetrieveRetryInterval
- Timeout/RegisterSyncRequest
- Timeout/SpinDelay
- Timeout/VacuumDelay
- Timeout/VacuumTruncate
- Timeout/WalSummarizerError
14.17 - [[metric:waiting_sessions]]
按等待类型与事件分组的当前会话数。
被哪些等待事件引用
- Activity/ArchiverMain
- Activity/AutovacuumMain
- Activity/BgwriterHibernate
- Activity/BgwriterMain
- Activity/CheckpointerMain
- Activity/CheckpointerShutdown
- Activity/IoWorkerMain
- Activity/LogicalApplyMain
- Activity/LogicalLauncherMain
- Activity/LogicalParallelApplyMain
- Activity/PgStatMain
- Activity/RecoveryWalStream
- Activity/ReplicationSlotsyncMain
- Activity/ReplicationSlotsyncShutdown
- Activity/SysloggerMain
- Activity/WalReceiverMain
- Activity/WalSenderMain
- Activity/WalSummarizerWal
- Activity/WalWriterMain
- BufferPin/BufferPin
- Client/ClientRead
- Client/ClientWrite
- Client/GssOpenServer
- Client/LibpqwalreceiverConnect
- Client/LibpqwalreceiverReceive
- Client/SslOpenServer
- Client/WaitForStandbyConfirmation
- Client/WalSenderWaitForWal
- Client/WalSenderWriteData
- Extension/Extension
- IO/AioIoCompletion
- IO/AioIoUringExecution
- IO/AioIoUringSubmit
- IO/BasebackupRead
- IO/BasebackupSync
- IO/BasebackupWrite
- IO/BuffileRead
- IO/BuffileTruncate
- IO/BuffileWrite
- IO/ControlFileRead
- IO/ControlFileSync
- IO/ControlFileSyncUpdate
- IO/ControlFileWrite
- IO/ControlFileWriteUpdate
- IO/CopyFileCopy
- IO/CopyFileRead
- IO/CopyFileWrite
- IO/DataFileExtend
- IO/DataFileFlush
- IO/DataFileImmediateSync
- IO/DataFilePrefetch
- IO/DataFileRead
- IO/DataFileSync
- IO/DataFileTruncate
- IO/DataFileWrite
- IO/DsmAllocate
- IO/DsmFillZeroWrite
- IO/LockFileAddtodatadirRead
- IO/LockFileAddtodatadirSync
- IO/LockFileAddtodatadirWrite
- IO/LockFileCreateRead
- IO/LockFileCreateSync
- IO/LockFileCreateWrite
- IO/LockFileRecheckdatadirRead
- IO/LogicalChangesRead
- IO/LogicalChangesWrite
- IO/LogicalRewriteCheckpointSync
- IO/LogicalRewriteMappingSync
- IO/LogicalRewriteMappingWrite
- IO/LogicalRewriteSync
- IO/LogicalRewriteTruncate
- IO/LogicalRewriteWrite
- IO/LogicalSubxactRead
- IO/LogicalSubxactWrite
- IO/RelationMapRead
- IO/RelationMapReplace
- IO/RelationMapSync
- IO/RelationMapWrite
- IO/ReorderBufferRead
- IO/ReorderBufferWrite
- IO/ReorderLogicalMappingRead
- IO/ReplicationSlotRead
- IO/ReplicationSlotRestoreSync
- IO/ReplicationSlotSync
- IO/ReplicationSlotWrite
- IO/SlruFlushSync
- IO/SlruRead
- IO/SlruSync
- IO/SlruWrite
- IO/SnapbuildRead
- IO/SnapbuildSync
- IO/SnapbuildWrite
- IO/TimelineHistoryFileSync
- IO/TimelineHistoryFileWrite
- IO/TimelineHistoryRead
- IO/TimelineHistorySync
- IO/TimelineHistoryWrite
- IO/TwophaseFileRead
- IO/TwophaseFileSync
- IO/TwophaseFileWrite
- IO/VersionFileSync
- IO/VersionFileWrite
- IO/WalBootstrapSync
- IO/WalBootstrapWrite
- IO/WalCopyRead
- IO/WalCopySync
- IO/WalCopyWrite
- IO/WalInitSync
- IO/WalInitWrite
- IO/WalRead
- IO/WalSummaryRead
- IO/WalSummaryWrite
- IO/WalSync
- IO/WalSyncMethodAssign
- IO/WalWrite
- IO/WalsenderTimelineHistoryRead
- IPC/AppendReady
- IPC/ArchiveCleanupCommand
- IPC/ArchiveCommand
- IPC/BackendTermination
- IPC/BackupWaitWalArchive
- IPC/BgworkerShutdown
- IPC/BgworkerStartup
- IPC/BtreePage
- IPC/BufferIo
- IPC/CheckpointDelayComplete
- IPC/CheckpointDelayStart
- IPC/CheckpointDone
- IPC/CheckpointStart
- IPC/ExecuteGather
- IPC/HashBatchAllocate
- IPC/HashBatchElect
- IPC/HashBatchLoad
- IPC/HashBuildAllocate
- IPC/HashBuildElect
- IPC/HashBuildHashInner
- IPC/HashBuildHashOuter
- IPC/HashGrowBatchesDecide
- IPC/HashGrowBatchesElect
- IPC/HashGrowBatchesFinish
- IPC/HashGrowBatchesReallocate
- IPC/HashGrowBatchesRepartition
- IPC/HashGrowBucketsElect
- IPC/HashGrowBucketsReallocate
- IPC/HashGrowBucketsReinsert
- IPC/LogicalApplySendData
- IPC/LogicalParallelApplyStateChange
- IPC/LogicalSyncData
- IPC/LogicalSyncStateChange
- IPC/MessageQueueInternal
- IPC/MessageQueuePutMessage
- IPC/MessageQueueReceive
- IPC/MessageQueueSend
- IPC/MultixactCreation
- IPC/ParallelBitmapScan
- IPC/ParallelCreateIndexScan
- IPC/ParallelFinish
- IPC/ProcSignalBarrier
- IPC/ProcarrayGroupUpdate
- IPC/Promote
- IPC/RecoveryConflictSnapshot
- IPC/RecoveryConflictTablespace
- IPC/RecoveryEndCommand
- IPC/RecoveryPause
- IPC/ReplicationOriginDrop
- IPC/ReplicationSlotDrop
- IPC/RestoreCommand
- IPC/SafeSnapshot
- IPC/SyncRep
- IPC/WalReceiverExit
- IPC/WalReceiverUpstreamCatchup
- IPC/WalReceiverWaitStart
- IPC/WalSummaryReady
- IPC/XactGroupUpdate
- Lock/advisory
- Lock/applytransaction
- Lock/extend
- Lock/frozenid
- Lock/object
- Lock/page
- Lock/relation
- Lock/spectoken
- Lock/transactionid
- Lock/tuple
- Lock/userlock
- Lock/virtualxid
- LWLock/AddinShmemInit
- LWLock/AioUringCompletion
- LWLock/AioWorkerSubmissionQueue
- LWLock/AutoFile
- LWLock/Autovacuum
- LWLock/AutovacuumSchedule
- LWLock/BackgroundWorker
- LWLock/BtreeVacuum
- LWLock/BufferContent
- LWLock/BufferMapping
- LWLock/Checkpoint
- LWLock/CheckpointerComm
- LWLock/CommitTs
- LWLock/CommitTsBuffer
- LWLock/CommitTsSLRU
- LWLock/ControlFile
- LWLock/DSMRegistry
- LWLock/DSMRegistryDSA
- LWLock/DSMRegistryHash
- LWLock/DynamicSharedMemoryControl
- LWLock/InjectionPoint
- LWLock/LockFastPath
- LWLock/LockManager
- LWLock/LogicalRepLauncherDSA
- LWLock/LogicalRepLauncherHash
- LWLock/LogicalRepWorker
- LWLock/MultiXactGen
- LWLock/MultiXactMemberBuffer
- LWLock/MultiXactMemberSLRU
- LWLock/MultiXactOffsetBuffer
- LWLock/MultiXactOffsetSLRU
- LWLock/MultiXactTruncation
- LWLock/NotifyBuffer
- LWLock/NotifyQueue
- LWLock/NotifyQueueTail
- LWLock/NotifySLRU
- LWLock/OidGen
- LWLock/OldSnapshotTimeMap
- LWLock/ParallelAppend
- LWLock/ParallelBtreeScan
- LWLock/ParallelHashJoin
- LWLock/ParallelQueryDSA
- LWLock/ParallelVacuumDSA
- LWLock/PerSessionDSA
- LWLock/PerSessionRecordType
- LWLock/PerSessionRecordTypmod
- LWLock/PerXactPredicateList
- LWLock/PgStatsDSA
- LWLock/PgStatsData
- LWLock/PgStatsHash
- LWLock/PredicateLockManager
- LWLock/ProcArray
- LWLock/RelCacheInit
- LWLock/RelationMapping
- LWLock/ReplicationOrigin
- LWLock/ReplicationOriginState
- LWLock/ReplicationSlotAllocation
- LWLock/ReplicationSlotControl
- LWLock/ReplicationSlotIO
- LWLock/SInvalRead
- LWLock/SInvalWrite
- LWLock/SerialBuffer
- LWLock/SerialControl
- LWLock/SerialSLRU
- LWLock/SerializableFinishedList
- LWLock/SerializablePredicateList
- LWLock/SerializableXactHash
- LWLock/SharedTidBitmap
- LWLock/SharedTupleStore
- LWLock/ShmemIndex
- LWLock/SubtransBuffer
- LWLock/SubtransSLRU
- LWLock/SyncRep
- LWLock/SyncScan
- LWLock/TablespaceCreate
- LWLock/TwoPhaseState
- LWLock/WALBufMapping
- LWLock/WALInsert
- LWLock/WALSummarizer
- LWLock/WALWrite
- LWLock/WaitEventCustom
- LWLock/WrapLimitsVacuum
- LWLock/XactBuffer
- LWLock/XactSLRU
- LWLock/XactTruncation
- LWLock/XidGen
- Timeout/BaseBackupThrottle
- Timeout/CheckpointWriteDelay
- Timeout/PgSleep
- Timeout/RecoveryApplyDelay
- Timeout/RecoveryRetrieveRetryInterval
- Timeout/RegisterSyncRequest
- Timeout/SpinDelay
- Timeout/VacuumDelay
- Timeout/VacuumTruncate
- Timeout/WalSummarizerError
14.18 - [[metric:wal_bytes]]
观测区间内生成的 WAL 字节数。
被哪些等待事件引用
- Activity/RecoveryWalStream
- Activity/WalReceiverMain
- Activity/WalSenderMain
- Activity/WalSummarizerWal
- Activity/WalWriterMain
- Client/LibpqwalreceiverConnect
- Client/LibpqwalreceiverReceive
- Client/WalSenderWaitForWal
- Client/WalSenderWriteData
- IO/WalBootstrapSync
- IO/WalBootstrapWrite
- IO/WalCopyRead
- IO/WalCopySync
- IO/WalCopyWrite
- IO/WalInitSync
- IO/WalInitWrite
- IO/WalRead
- IO/WalSummaryRead
- IO/WalSummaryWrite
- IO/WalSync
- IO/WalSyncMethodAssign
- IO/WalWrite
- IO/WalsenderTimelineHistoryRead
- IPC/BackupWaitWalArchive
- IPC/WalReceiverExit
- IPC/WalReceiverUpstreamCatchup
- IPC/WalReceiverWaitStart
- IPC/WalSummaryReady
- LWLock/WALBufMapping
- LWLock/WALInsert
- LWLock/WALSummarizer
- Timeout/WalSummarizerError
14.21 - [[metric:wal_write_time]]
写入 WAL 所花时间。
被哪些等待事件引用
- Activity/RecoveryWalStream
- Activity/WalReceiverMain
- Activity/WalSenderMain
- Activity/WalSummarizerWal
- Activity/WalWriterMain
- Client/LibpqwalreceiverConnect
- Client/LibpqwalreceiverReceive
- Client/WalSenderWaitForWal
- Client/WalSenderWriteData
- IO/WalBootstrapSync
- IO/WalBootstrapWrite
- IO/WalCopyRead
- IO/WalCopySync
- IO/WalCopyWrite
- IO/WalInitSync
- IO/WalInitWrite
- IO/WalRead
- IO/WalSummaryRead
- IO/WalSummaryWrite
- IO/WalSync
- IO/WalSyncMethodAssign
- IO/WalWrite
- IO/WalsenderTimelineHistoryRead
- IPC/BackupWaitWalArchive
- IPC/WalReceiverExit
- IPC/WalReceiverUpstreamCatchup
- IPC/WalReceiverWaitStart
- IPC/WalSummaryReady
- LWLock/WALBufMapping
- LWLock/WALSummarizer
- LWLock/WALWrite
- Timeout/WalSummarizerError