最近发现PG的等待事件的名称发生了一些变化,因此需要重新对相关的知识图谱进行更新。我们的知识图谱中,把PG以及衍生的数据库产品中的等待事件是作为相同的一类知识梳理的,因此在梳理过程中,合并了PG及其衍生数据库产品的等待事件,包括了近期大热的Gaussdb。Gaussdb对PG的等待事件扩展了很多,不过因为缺少实际案例和文档,很多Gaussdb的等待事件的定义我们还没有厘清,有些能够通过openGauss的源码来做辅助分析,有些就只能根据字面意思去望文生义,其质量也就要打折扣了。对于PG的等待事件,因为从PG 13开始,LWLOCK的很多等待事件名称发生了变化,因此在这个表格里会有重复的定义
今天我把这张清单发出和大家共享,如果有朋友对这项工作有兴趣,也可以和我联系,有关于这方面的知识也可以告诉我,我会不断的把我们对这方面的理解和认知发出来和大家分享。下面的表格建议大家收藏一下,以供未来不时之需。
分类 |
名称 |
描述 |
关联根因 |
Activity |
ArchiverMain |
归档进程的主循环等待 |
后台进程,一般可忽略 |
Activity |
AutoVacuumMain |
autovacuum启动进程的主循环等待 |
后台进程,一般可忽略 |
Activity |
BgWriterHibernate |
后台写入进程等待,正在休眠 |
后台进程,一般可忽略 |
Activity |
BgWriterMain |
bgwriter进程的主循环等待 |
后台进程,一般可忽略 |
Activity |
CheckpointerMain |
CKPT进程主循环等待 |
后台进程,一般可忽略 |
Activity |
LogicalApplyMain |
逻辑应用进程主循环等待 |
后台进程,一般可忽略 |
Activity |
LogicalLauncherMain |
逻辑启动进程主循环等待 |
后台进程,一般可忽略 |
Activity |
PgStatMain |
统计信息采集进程主循环等待 |
后台进程,一般可忽略 |
Activity |
RecoveryWalAll |
实例恢复时等待WAL数据流到达 |
等待新的WAL数据 |
Activity |
RecoveryWalStream |
在恢复时再次尝试检索 WAL 数据之前,等待任何类型的源(本地、存档或流)中的 WAL 数据不可用时 |
等待新的WAL数据 |
Activity |
SysLoggerMain |
syslogger进程主循环等待 |
后台进程,一般可忽略 |
Activity |
WalReceiverMain |
WAL接收进程主循环等待 |
后台进程,一般可忽略 |
Activity |
WalSenderMain |
WAL发送进程主循环等待 |
后台进程,一般可忽略 |
Activity |
WalWriterMain |
WAL写进程主循环等待 |
后台进程,一般可忽略 |
BufferPin |
BufferPin |
等待获得BUFFER的PIN锁 |
热块、DBCACHE |
Client |
ClientRead |
等待读取客户端输入 |
未提交事务,空闲等待 |
Client |
ClientWrite |
等待向客户端发送数据 |
网络、TOPSQL |
Client |
LibPQWalReceiverConnect |
在 WAL 接收器中等待建立与远程服务器的连接。 |
|
Client |
LibPQWalReceiverReceive |
等待 WAL 接收器接收来自远程服务器的数据。 |
|
Client |
SSLOpenServer |
等待SSL连接 |
|
Client |
WalReceiverWaitStart |
等待启动进程发送初始化复制数据流 |
|
Client |
WalSenderWaitForWAL |
在WAL发送进程中等待WAL刷新 |
|
Client |
WalSenderWriteData |
在 WAL 发送者进程中处理来自 WAL 接收者的回复时等待任何活动 |
|
Extension |
Extension |
等待和extension交换数据或消息 |
和扩展插件有关 |
IO |
BaseBackupRead |
等待基础备份读取文件 |
磁盘IO |
IO |
BaseBackupSync |
等待基础备份数据写入持久化存错 |
磁盘IO |
IO |
BaseBackupWrite |
等待基础备份数据写入文件 |
磁盘IO |
IO |
BufFileRead |
bffered文件读等待 |
磁盘IO,热块,DBCACHE |
IO |
BufFileWrite |
buffered文件写等待 |
DBCACHE,磁盘IO |
IO |
BufHashTableSearch |
缓冲区HASH 表查询 |
缓冲区hash表查询 |
IO |
ControlFileRead |
等待控制文件读 |
磁盘IO |
IO |
ControlFileSync |
等待控制文件写入持久化存储 |
磁盘IO |
IO |
ControlFileSyncUpdate |
等待控制文件修改到达持久化存储 |
磁盘IO |
IO |
ControlFileWrite |
等待写入控制文件 |
磁盘IO |
IO |
ControlFileWriteUpdate |
等待一个修改控制文件的写操作 |
磁盘IO |
IO |
CopyFileRead |
COPY命令中的读等待 |
磁盘IO |
IO |
CopyFileWrite |
COPY命令中的写等待 |
磁盘IO |
IO |
DataFileExtend |
等待 relation数据文件扩展 |
磁盘IO,磁盘容量 |
IO |
DataFileFlush |
等待 relation数据文件写入持久存储 |
磁盘IO |
IO |
DataFileImmediateSync |
等待一个立即同步 relation 数据文件写入持久存储 |
磁盘IO |
IO |
DataFilePrefetch |
等待从Relation数据文件异步预读数据 |
磁盘IO |
IO |
DataFileRead |
等待从relation数据文件读数据 |
磁盘IO |
IO |
DataFileSync |
等待 relation 数据文件的变化写入持久存储 |
磁盘IO |
IO |
DataFileTruncate |
等待relation 数据文件截断 |
磁盘IO |
IO |
DataFileWrite |
等待 relation数据文件写 |
磁盘IO |
IO |
DisableConnectFileRead |
HA锁分片逻辑文件读取 |
|
IO |
DisableConnectFileSync |
HA锁分片逻辑文件强制刷盘 |
|
IO |
DisableConnectFileWrite |
HA锁分片逻辑文件写入 |
|
IO |
DoubleWriteFileRead |
双写文件读,和双写区IO有关的读 |
|
IO |
DoubleWriteFileWrite |
双写文件写,与脏快写盘有关 |
并发DML、写操作 |
IO |
DSMFillZeroWrite |
等待向一个动态共享内存文件写入字节0 |
内存 |
IO |
DWSingleFlushGetPos |
刷新日志数据到永久存储 |
磁盘IO,事务并发 |
IO |
DWSingleFlushWrite |
刷新日志数据到永久存储 |
磁盘IO,事务并发 |
IO |
LockFileAddToDataDirRead |
向数据字典锁文件添加一行时等待读操作 |
磁盘IO,并发DDL |
IO |
LockFileAddToDataDirSync |
向数据字典锁文件添加一行时等待数据写入持久存储 |
磁盘IO,并发DDL |
IO |
LockFileAddToDataDirWrite |
向数据字典锁文件添加一行时等待写操作 |
磁盘IO,并发DDL |
IO |
LockFileCreateRead |
创建数据字典锁文件时等待读操作 |
磁盘IO |
IO |
LockFileCreateSync |
创建数据字典锁文件时等待数据写入持久存储 |
磁盘IO |
IO |
LockFileCreateWRITE |
创建数据字典锁文件时等待写操作 |
磁盘IO |
IO |
LockFileCreateWrite |
创建数据字典锁文件时等待写操作 |
磁盘IO |
IO |
LockFileReCheckDataDirRead |
在重新检查数据字典锁文件期间等待读操作 |
磁盘IO |
IO |
LOGCTRL_SLEEP |
在等待一个用于日志控制的事件类型,发生在执行需要管理日志的操作时 |
磁盘IO,并发事务 |
IO |
LogicalRewriteCheckpointSync |
CKPT时等待逻辑重写映射到达持久化存储 |
磁盘IO,检查点,逻辑复制 |
IO |
LogicalRewriteMappingSync |
逻辑重写时等待映射数据达到持久化存储 |
磁盘IO、逻辑复制 |
IO |
LogicalRewriteMappingWrite |
逻辑重写时等待写映射数据达到持久化存储 |
磁盘IO、逻辑复制 |
IO |
LogicalRewriteSync |
等待逻辑重写映射到达持久化存储 |
磁盘IO、逻辑复制 |
IO |
LogicalRewriteTruncate |
等待映射数据截断到达持久化存储 |
磁盘IO、逻辑复制 |
IO |
LogicalRewriteWrite |
等待一个逻辑重写映射写操作 |
磁盘IO、逻辑复制 |
IO |
MPFL_INIT |
等待初始化或者销毁内存池 |
|
IO |
MPFL_READ |
等待读取内存池 |
|
IO |
MPFL_WRITE |
等待写入内存池 |
|
IO |
OBSList |
对象存储相关 |
|
IO |
OBSRead |
对象存储相关 |
|
IO |
OBSWrite |
对象存储相关 |
|
IO |
PredoApply |
并行日志回放中等待当前工作线程等待其他线程回 放至本线程LSN |
并行日志恢复 |
IO |
PredoProcessPending |
并行日志回放中当前记录回放等待其它记录回放完 成 |
并行日志恢复 |
IO |
RelationMapRead |
等待Relation Map文件读 |
磁盘IO、逻辑复制 |
IO |
RelationMapSync |
等待Relation Map文件写入持久存储 |
磁盘IO |
IO |
RelationMapWrite |
等待Relation Map文件写 |
磁盘IO |
IO |
ReorderBufferRead |
RecorderBuffer管理中等待读操作(逻辑复制) |
磁盘IO、逻辑复制 |
IO |
ReorderBufferWrite |
RecorderBuffer管理中等待写操作(逻辑复制) |
磁盘IO、逻辑复制 |
IO |
ReorderLogicalMappingRead |
RecorderBuffer管理中等待逻辑映射文件读操作 |
磁盘IO、逻辑复制 |
IO |
ReplicationSlotRead |
等待复制槽控制文件的读操作 |
磁盘IO、复制 |
IO |
ReplicationSlotRestoreSync |
当复制槽控制文件从内存中复制时等待该文件写入持久存储 |
磁盘IO、复制 |
IO |
ReplicationSlotSync |
等待复制槽控制文件写入持久存储 |
磁盘IO、复制 |
IO |
ReplicationSlotWrite |
等待一个复制槽控制文件写操作 |
磁盘IO、复制 |
IO |
SLRUFlushSync |
检查点或者数据库关闭的时候,等待 SLRU数据写入持久存储 |
磁盘IO、检查点、数据库关闭 |
IO |
SLRURead |
等待SLRU页读取 |
磁盘IO |
IO |
SLRUSync |
页写入后等待SLRU数据写入持久存储 |
磁盘IO |
IO |
SLRUWrite |
等待 SLRU 页写操作 |
磁盘IO |
IO |
SnapbuildRead |
等待读取序列化的历史目录快照 |
磁盘IO |
IO |
SnapbuildSync |
等待序列化的历史目录快照写入持久存储 |
磁盘IO |
IO |
SnapbuildWrite |
等待写入序列化的历史目录快照 |
磁盘IO |
IO |
StrategyGetBuffer |
||
IO |
TimelineHistoryFileSync |
等待通过流式复制接收到的时间线历史文件写入持久存储 |
磁盘IO |
IO |
TimelineHistoryFileWrite |
流式复制时等待时间线文件上的一个写操作被收到 |
磁盘IO |
IO |
TimelineHistoryRead |
等待时间线历史文件上的读操作 |
磁盘IO |
IO |
TimelineHistorySync |
等待新创建的时间线历史文件写入持久存储 |
磁盘IO |
IO |
TimelineHistoryWrite |
等待新创建的时间线历史文件上的写操作 |
磁盘IO |
IO |
TwophaseFileRead |
等待两阶段状态文件读操作 |
磁盘IO、分布式事务 |
IO |
TwophaseFileSync |
等待两阶段状态文件写入持久存储 |
磁盘IO、分布式事务 |
IO |
TwophaseFileWrite |
等待两阶段状态文件写操作 |
磁盘IO、分布式事务 |
IO |
UndoFileExtend |
UNDO文件扩展 |
UNDO量增加 |
IO |
UndoFileFlush |
UNDO文件刷盘 |
并发事务 |
IO |
UndoFilePrefetch |
UNDO文件预读 |
一致性读 |
IO |
UndoFileRead |
UNDO文件读 |
一致性读 |
IO |
UndoFileSync |
UNDO文件同步 |
并发事务 |
IO |
UndoFileWrite |
UNDO文件写 |
并发事务 |
IO |
VersionFileWrite |
创建数据库时写入VERSION文件产生的等待 |
磁盘IO |
IO |
WALBootstrapSync |
bootstrap的时候等待WAL文件写入持久存储 |
磁盘IO、启动 |
IO |
WALBootstrapWrite |
bootstrap的时候等待WAL页写操作 |
磁盘IO、启动 |
IO |
WALBufferAccess |
WAL BUFFER访问 |
并发事务 |
IO |
WALBufferFull |
WAL缓冲区满 |
WAL并发、并发修改、IO性能 |
IO |
WALCopyRead |
当使用拷贝一个现有的WAL 段创建一个新WAL段的时候等待读操作 |
磁盘IO、复制 |
IO |
WALCopySync |
当使用拷贝一个现有的WAL 段创建一个新WAL段的时候等待写入持久存储 |
磁盘IO、复制 |
IO |
WALCopyWrite |
当使用拷贝一个现有的WAL 段创建一个新WAL段的时候等待写操作 |
磁盘IO、复制 |
IO |
WALInitSync |
等待一个新初始化的WAL文件写入持久存储 |
磁盘IO、检查点 |
IO |
WALInitWrite |
初始化新的WAL文件的时候等待写操作 |
磁盘IO、检查点 |
IO |
WALRead |
等待WAL文件读 |
磁盘IO |
IO |
WALSenderTimelineHistoryRead |
在 walsender 时间线命令期间等待从时间线历史文件中读取 |
磁盘IO、复制 |
IO |
WALSync |
等待 WAL 文件到达持久的存储空间 |
磁盘IO、WAL量 |
IO |
WALSyncMethodAssign |
WAL 同步模式时等待数据写入持久存储 |
磁盘IO、WAL量 |
IO |
WALWrite |
等待WAL文件写 |
磁盘IO、WAL量 |
IPC |
BgWorkerShutdown |
等待后台worker关闭 |
|
IPC |
BgWorkerStartup |
等待后台worker启动 |
|
IPC |
BtreePage |
等待继续并行 B 树扫描所需的页可用(并行索引扫描) |
并行执行 |
IPC |
ExecuteGather |
执行Gather时等待子进程的活动 |
表分析 |
IPC |
Hash/Batch/Allocating |
HASH JOIN 相关 |
HASH JOIN |
IPC |
Hash/Batch/Electing |
HASH JOIN 相关 |
HASH JOIN |
IPC |
Hash/Batch/Loading |
HASH JOIN 相关 |
HASH JOIN |
IPC |
Hash/Build/Allocating |
HASH JOIN 相关 |
HASH JOIN |
IPC |
Hash/Build/Electing |
HASH JOIN 相关 |
HASH JOIN |
IPC |
Hash/Build/HashingInner |
HASH JOIN 相关 |
HASH JOIN |
IPC |
Hash/Build/HashingOuter |
HASH JOIN 相关 |
HASH JOIN |
IPC |
Hash/GrowBatches/Allocating |
HASH JOIN 相关 |
HASH JOIN |
IPC |
Hash/GrowBatches/Deciding |
HASH JOIN 相关 |
HASH JOIN |
IPC |
Hash/GrowBatches/Electing |
HASH JOIN 相关 |
HASH JOIN |
IPC |
Hash/GrowBatches/Finishing |
HASH JOIN 相关 |
HASH JOIN |
IPC |
Hash/GrowBatches/Repartitioning |
HASH JOIN 相关 |
HASH JOIN |
IPC |
Hash/GrowBuckets/Allocating |
HASH JOIN 相关 |
HASH JOIN |
IPC |
Hash/GrowBuckets/Electing |
HASH JOIN 相关 |
HASH JOIN |
IPC |
Hash/GrowBuckets/Reinserting |
HASH JOIN 相关 |
HASH JOIN |
IPC |
LogicalSyncData |
等待逻辑复制远程服务发送数据,用于初始表同步 |
逻辑复制 |
IPC |
LogicalSyncData |
等待逻辑复制的远程服务器发送用于初始表 同步的数据 |
|
IPC |
LogicalSyncStateChange |
等待逻辑复制远程服务改变状态 |
逻辑复制 |
IPC |
LogicalSyncStateChange |
等待逻辑复制的远程服务器更改状态 |
|
IPC |
MessageQueueInternal |
等待其他进程连接到共享消息队列中 |
|
IPC |
MessageQueueInternal |
等待其他进程被挂接到共享消息队列 |
|
IPC |
MessageQueuePutMessage |
等待写一条协议消息到共享消息队列中 |
|
IPC |
MessageQueuePutMessage |
等待把一个协议消息写到一个共享消息队列 |
|
IPC |
MessageQueueReceive |
等待从共享消息队列中接收字节 |
|
IPC |
MessageQueueReceive |
等待从一个共享消息队列接收字节 |
|
IPC |
MessageQueueSend |
等待向共享消息队列发送字节 |
|
IPC |
MessageQueueSend |
等待向一个共享消息队列中发送字节 |
|
IPC |
ParallelBitmapScan |
等待并行位图索引扫描初始化 |
并行执行 |
IPC |
ParallelCreateIndexScan |
等待并行 CREATE INDEX 工作者完成堆扫描 |
|
IPC |
ParallelFinish |
等待并行查询worker结束计算 |
并行执行 |
IPC |
ParallelFinish |
等待并行工作者完成计算 |
|
IPC |
ProcArrayGroupUpdate |
当事务结束时等待组leader清除transaction id |
长事务 |
IPC |
ProcArrayGroupUpdate |
等待组领袖在事务结束时清除事务 ID |
|
IPC |
Promote |
等待备用节点升级 |
|
IPC |
ReplicationOriginDrop |
等待复制源变为非活动状态以被删除 |
复制槽 |
IPC |
ReplicationOriginDrop |
等待一个复制源头变得不活跃以便被删除 |
|
IPC |
ReplicationSlotDrop |
等待复制槽变为非活动状态以被删除 |
复制槽 |
IPC |
ReplicationSlotDrop |
等待一个复制槽变得不活跃以便被删除 |
|
IPC |
SafeSnapshot |
一个READ ONLY DEFERRABLE 事务等待snapshot |
事务快照 |
IPC |
SafeSnapshot |
等 待 一 个 用 于 READ ONLY DEFERRABLE 事务的快照 |
|
IPC |
SyncRep |
同步复制时等待远程服务确认 |
同步复制 |
IPC |
SyncRep |
在同步复制期间等待来自远程服务器的确认。 |
|
Lock |
advisory |
等待获取建议用户锁 |
|
Lock |
cstore_freespace |
||
Lock |
extend |
等待扩展 relation结束 |
EXTEND |
Lock |
filenode |
||
Lock |
frozenid |
等待修改 pg_database.datfrozenxid和 pg_database.datminmxid. |
VACUUM、磁盘IO性能、数据库配置 |
Lock |
object |
除了relation外的其他数据库对象(DB,SCHEMA等) |
DDL操作 |
Lock |
page |
等待获取relation中的一个页面的锁 |
热块、SHARED BUFFERS |
Lock |
partition |
保护分区元数据一致性的串行化等待 |
|
Lock |
partition_seq |
||
Lock |
relation |
等待获得一个关系上的锁 |
并发执行 |
Lock |
speculative token |
等待获取推测插入锁 |
热块、事务并发、热表 |
Lock |
subtransactionid |
||
Lock |
transactionid |
等待一个事务结束 |
事务并发 |
Lock |
tuple |
等待获取元组(tuple)锁 |
热块、事务并发 |
Lock |
userlock |
等待获取用户锁 |
|
Lock |
virtualxid |
等待获取虚拟XID锁 |
并发执行、活跃会话 |
LWLock |
AddinShmemInit |
等待共享内存中的内存空间管理 |
共享内存初始化 |
LWLock |
AddinShmemInitLock |
等待共享内存中的内存空间管理 |
共享内存初始化 |
LWLock |
AlterPortLock |
||
LWLock |
ASPMappingLock |
||
LWLock |
async |
等待async (notify) buffer IO完成 |
活跃会话、磁盘IO性能 |
LWLock |
Async Ctl |
||
LWLock |
AsyncCtlLock |
等待读取或者修改共享通知状态 |
会话数,并发执行,并发事务 |
LWLock |
AsyncQueueLock |
等待读取或者修改通知消息 |
会话数,并发执行,并发事务 |
LWLock |
AutoanalyzeLock |
||
LWLock |
AutoFile |
等待修改postgresql.auto.conf 文件 |
参数文件修改 |
LWLock |
AutoFileLock |
等待修改postgresql.auto.conf 文件 |
参数文件修改 |
LWLock |
Autovacuum |
等待Autovacuum worker 或者launcher等待读取或者修改 autovacuum worker的当前状态 |
VACUUM |
LWLock |
AutovacuumLock |
等待Autovacuum worker 或者launcher等待读取或者修改 autovacuum worker的当前状态 |
VACUUM |
LWLock |
AutovacuumSchedule |
等待被选择做vacuum 的表仍然需要 vacuuming的确认信息 |
VACUUM |
LWLock |
AutovacuumScheduleLock |
等待被选择做vacuum 的表仍然需要 vacuuming的确认信息 |
VACUUM |
LWLock |
BackendRandomLock |
等待生成随机数 |
随机数生成 |
LWLock |
BackgroundWorker |
等待读取后者修改后台worker进程的状态 |
并行执行,后台进程启动,后台进程关闭 |
LWLock |
BackgroundWorkerLock |
等待读取后者修改后台worker进程的状态 |
并行执行,后台进程启动,后台进程关闭 |
LWLock |
BadBlockStatHashLock |
访问坏块统计信息内存数据产生的等待 |
|
LWLock |
BarrierLock |
确保主备节点达到一致性的屏障机制 |
|
LWLock |
BlockchainVersionLock |
在不同节点间传递区块链同步信息 |
|
LWLock |
BtreeVacuum |
等待读取或者修改vacuum相关的B树索引信息 |
VACUUM,索引 |
LWLock |
BtreeVacuumLock |
等待读取或者修改vacuum相关的B树索引信息 |
VACUUM,索引 |
LWLock |
buffer_content |
等待在DB CACHE中读写数据页 |
磁盘IO性能、热块、DBCACHE |
LWLock |
buffer_io |
等待数据页IO完成 |
磁盘IO性能、检查点、热块 |
LWLock |
buffer_mapping |
等待将数据块与缓冲池中的缓冲区关联 |
DBCACHE,热块冲突 |
LWLock |
BufferContent |
等待在DB CACHE中读写数据页 |
磁盘IO性能、热块、DBCACHE |
LWLock |
BufferContent |
等待访问内存中的PAGE |
DBCACHE,热块冲突 |
LWLock |
BufferContentLock |
等待访问内存中的PAGE |
DBCACHE,热块冲突 |
LWLock |
BufferIOLock |
类似于Oracle的BBW的read by other session |
DBCACHE,热块冲突 |
LWLock |
BufferMapping |
等待将数据块与缓冲池中的缓冲区关联 |
DBCACHE,热块冲突 |
LWLock |
BufFreelistLock |
会话试图从缓冲区中分配或者释放缓冲区产生的等待 |
DBCACHE,热块冲突 |
LWLock |
BufMapping |
大量会话并发房屋shared buffer的HASH表产生的等待 |
DBCACHE,热块冲突 |
LWLock |
BufMappingLock |
大量会话并发房屋shared buffer的HASH表产生的等待 |
DBCACHE,热块冲突 |
LWLock |
CacheSlotMappingLock |
||
LWLock |
CaptureViewFileHashLock |
||
LWLock |
CBMParseXlogLock |
||
LWLock |
CheckpointerComm |
等待管理fsync 请求 |
磁盘IO性能,并发写入 |
LWLock |
CheckpointerCommLock |
等待管理fsync 请求 |
磁盘IO性能,并发写入 |
LWLock |
CheckpointLock |
等待执行CKPT |
并发事务 |
LWLock |
clog |
等待CLOG缓冲区的IO操作 |
事务并发、磁盘IO性能 |
LWLock |
CLOG Ctl |
||
LWLock |
CLogBufMappingLock |
||
LWLock |
CLogControlLock |
等待读取或者修改事务状态 |
并发事务 |
LWLock |
CLogTruncationLock |
等待执行txid_status 或者将可获得的最老的transaction id赋给它 |
事务并发、磁盘IO性能、检查点配置 |
LWLock |
ClusterRPLock |
||
LWLock |
commit_timestamp |
等待 commit timestamp buffer IO操作完成 |
事务并发、参数配置、磁盘IO性能 |
LWLock |
CommitTs |
等待 commit timestamp buffer IO操作完成 |
事务并发、参数配置、磁盘IO性能 |
LWLock |
CommitTsBuffer |
为一个commit timestamp SLRU BUFFER等待IO完成 |
事务并发、参数配置、磁盘IO性能 |
LWLock |
CommitTsControlLock |
等待读取或者修改事务提交时间戳 |
事务提交,页控制相关,DB CACHE,并发事务, |
LWLock |
CommitTsLock |
等待读取或者修改事务时间戳的最后值集合 |
事务提交,并发事务, |
LWLock |
CommitTsSLRU |
等待访问commit timestamp SLRU CACHE |
事务并发、参数配置、磁盘IO性能 |
LWLock |
ConsumerStateLock |
||
LWLock |
ControlFile |
等待读取或者修改控制文件,或者创建一个新的WAL文件 |
DML,并发写入,磁盘IO性能 |
LWLock |
ControlFileLock |
等待读取或者修改控制文件,或者创建一个新的WAL文件 |
DML,并发写入,磁盘IO性能 |
LWLock |
CSNBufMappingLock |
||
LWLock |
CSNLOG Ctl |
||
LWLock |
CsnMinLock |
||
LWLock |
CStoreColspaceCacheLock |
||
LWLock |
CStoreCUCacheSweepLock |
||
LWLock |
CUSlotListLock |
||
LWLock |
DataCacheLock |
||
LWLock |
DataFileIdCacheLock |
||
LWLock |
DataSyncRepLock |
||
LWLock |
DelayDDLLock |
||
LWLock |
DeleteCompactionLock |
||
LWLock |
DeleteConsumerLock |
||
LWLock |
DfsConnectorCacheLock |
||
LWLock |
DfsSpaceCacheLock |
||
LWLock |
DfsUserLoginLock |
||
LWLock |
DnUsedSpaceHashLock |
||
LWLock |
DoubleWriteLock |
||
LWLock |
dummyServerInfoCacheLock |
||
LWLock |
DWSingleFlushFirstLock |
CKPT增量刷脏块 |
CKPT增量刷脏块 |
LWLock |
DWSingleFlushPosLock |
||
LWLock |
DWSingleFlushWriteLock |
||
LWLock |
DynamicSharedMemoryControl |
等待读取或者修改动态共享内存状态 |
动态共享内存分配、释放 |
LWLock |
DynamicSharedMemoryControlLock |
等待读取或者修改动态共享内存状态 |
动态共享内存分配、释放 |
LWLock |
ExtensionConnectorLibLock |
||
LWLock |
FdwPartitionCacheLock |
||
LWLock |
FileStatLock |
||
LWLock |
FullBuildXlogCopyStartPtrLock |
||
LWLock |
GeneralExtendedLock |
||
LWLock |
GlobalPrevHashLock |
||
LWLock |
GlobalSeqLock |
||
LWLock |
GlobalWorkloadLock |
||
LWLock |
GPCClearLock |
||
LWLock |
GPCCommitLock |
||
LWLock |
GPCMappingLock |
||
LWLock |
GPCTimelineLock |
||
LWLock |
GTMHostInfoLock |
||
LWLock |
gtt_shared_ctl |
||
LWLock |
HadrSwitchoverLock |
||
LWLock |
HypoIndexLock |
||
LWLock |
InstanceRealTLock |
||
LWLock |
InstanceTimeLock |
||
LWLock |
InstrUserLockId |
||
LWLock |
InstrWorkloadLock |
||
LWLock |
IOStatLock |
||
LWLock |
JobShmemLock |
||
LWLock |
LLVMDumpIRLock |
||
LWLock |
LLVMParseIRLock |
||
LWLock |
lock_manager |
在并行执行中,等待为后端添加或检查锁,或者等待加入或退出锁组 |
事务并发 |
LWLock |
LockFastPath |
等待更新进程的FAST PATH LOCK信息 |
事务并发 |
LWLock |
LockManager |
在并行执行中,等待为后端添加或检查锁,或者等待加入或退出锁组 |
事务并发 |
LWLock |
LockMgrLock |
在并行执行中,等待为后端添加或检查锁,或者等待加入或退出锁组 |
事务并发 |
LWLock |
LogicalReplicationSlotPersistentDataLock |
||
LWLock |
LogicalRepWorkerLock |
等待逻辑复制的WORKER结束任务 |
流复制 |
LWLock |
LsnXlogChkFileLock |
||
LWLock |
LWTRANCHE_ACCOUNT_TABLE |
||
LWLock |
MatviewSeqnoLock |
物化视图序号锁等待 |
物化视图操作相关 |
LWLock |
MaxPageFlushLsnFileLock |
||
LWLock |
MetaCacheLock |
||
LWLock |
MetaCacheSweepLock |
||
LWLock |
MPFLLOCK |
||
LWLock |
multixact_member |
等待 multixact_member buffer IO操作完成 |
事务并发,磁盘IO性能 |
LWLock |
multixact_offset |
等待 multixact offset buffer IO操作完成 |
事务并发,磁盘IO性能 |
LWLock |
MultiXactGen |
等待读取或者修改共享组合事务( multixact)状态 |
并发事务 |
LWLock |
MultiXactGenLock |
等待读取或者修改共享组合事务( multixact)状态 |
并发事务 |
LWLock |
MultiXactMember Ctl |
||
LWLock |
MultiXactMemberBuffer |
为一个multixact SLRU buffer等待IO |
并发事务 |
LWLock |
MultiXactMemberControlLock |
等待读取或者修改组合事务(multixact) 成员映射信息 |
并发事务 |
LWLock |
MultiXactMemberSLRU |
等待访问multixact SLRU CACHE |
并发事务 |
LWLock |
MultiXactOffset Ctl |
||
LWLock |
MultiXactOffsetBuffer |
为一个multixact offset SLRU buffer等待IO |
并发事务 |
LWLock |
MultiXactOffsetControlLock |
等待读取或者修改组合事务(multixact) 偏移映射信息 |
并发事务 |
LWLock |
MultiXactOffsetSLRU |
等待访问multixact offset SLRU CACHE |
并发事务 |
LWLock |
MultiXactTruncation |
等待清空multixact 信息 |
并发事务 |
LWLock |
MultiXactTruncationLock |
等待读取或者截断 multixact 信息 |
事务并发,大事务 |
LWLock |
NGroupMappingLock |
||
LWLock |
NodeTableLock |
||
LWLock |
NormalizedSqlLock |
||
LWLock |
NotifyBuffer |
等待Notify buffer的SLRU缓冲区上的IO |
|
LWLock |
NotifyQueue |
等待读取或者修改Notify消息 |
|
LWLock |
NotifyQueueTail |
等待修改通知消息存储限制 |
|
LWLock |
NotifyQueueTailLock |
等待修改通知消息存储限制 |
|
LWLock |
NotifySLRU |
等待访问Notify SLRU缓冲 |
|
LWLock |
OBSGetPathLock |
||
LWLock |
OBSRuntimeLock |
||
LWLock |
OidGen |
等待分配或者赋予一个 OID |
并发DDL |
LWLock |
OidGenLock |
等待分配或者赋予一个 OID |
并发DDL |
LWLock |
oldserxid |
等待oldserxid buffer IO完成 |
磁盘IO性能,事务并发 |
LWLock |
OldSerXid SLRU Ctl |
||
LWLock |
OldSerXidLock |
等待读取或记录冲突的可序列化事务 |
事务隔离级别,并发事务 |
LWLock |
OldSnapshotTimeMap |
等待读取或者修改旧的snapshot控制信息 |
事务并发,SAVEPOINT |
LWLock |
OldSnapshotTimeMapLock |
等待读取或者修改旧的snapshot控制信息 |
事务并发,SAVEPOINT |
LWLock |
OperatorHistLock |
||
LWLock |
OperatorRealTLock |
||
LWLock |
parallel_append |
在 Parallel Append 计划执行期间等待选择下一个子计划 |
并发APPEND写入 |
LWLock |
parallel_hash_join |
在 Parallel Hash 计划执行期间等待分配或交换一块内存或者更新计数器 |
并发HASH JOIN |
LWLock |
parallel_query_dsa |
等待并行查询动态共享内存分配锁 |
|
LWLock |
ParallelAppend |
在 Parallel Append 计划执行期间等待选择下一个子计划 |
并发APPEND写入 |
LWLock |
ParallelHashJoin |
在 Parallel Hash 计划执行期间等待分配或交换一块内存或者更新计数器 |
并发HASH JOIN |
LWLock |
ParallelQueryDSA |
等待并行查询动态共享内存分配锁 |
|
LWLock |
PartIdCacheLock |
分区表的数量过多或者被访问得过于频繁 |
|
LWLock |
PartOidCacheLock |
分区表的数量过多或者被访问得过于频繁 |
|
LWLock |
PercentileLock |
全局百分位缓冲区争用 |
|
LWLock |
PerSessionDSA |
等待并行查询动态共享内存分配锁 |
|
LWLock |
PerSessionRecordType |
并行查询中等待复合类型的相关信息 |
|
LWLock |
PerSessionRecordType |
并行查询中等待匿名记录类型的相关信息(比如CTE) |
|
LWLock |
PerXactPredicateList |
并行查询中等待可序列化的对象的谓词锁定产生的等待 |
|
LWLock |
PgfdwLock |
外部访问引发的等待 |
|
LWLock |
PGPROCLock |
访问进程数组产生的等待 |
|
LWLock |
PgStatsData |
访问统计信息区域的等待 |
|
LWLock |
PgStatsDSA |
访问统计信息区域的等待 |
|
LWLock |
PgStatsHash |
访问统计信息区域的等待 |
|
LWLock |
PLdebugger |
PL/PGSQL跟踪 |
PL/PGSQL跟踪 |
LWLock |
PldebugLock |
PL/PGSQL跟踪 |
PL/PGSQL跟踪 |
LWLock |
PoolerLock |
试图从数据库连接处中获取或者释放一个连接引发的等待 |
|
LWLock |
predicate_lock_manager |
等待添加或检查谓词锁信息 |
并发执行 |
LWLock |
PredicateLockManager |
等待添加或检查谓词锁信息 |
并发执行 |
LWLock |
PredicateLockMgrLock |
当一个进程试图访问可序列化事务使用的谓词锁定信息时产生的,为了保护谓词锁定管理器的数据结构 |
并发执行 |
LWLock |
proc |
等待读取或者修改快速路径锁的信息 |
并发锁 |
LWLock |
ProcArray |
等待获得snapshot或者在会话结束时清理XID,或者查询XID |
并发事务 |
LWLock |
ProcArrayLock |
等待获得snapshot或者在会话结束时清理XID,或者查询XID |
并发事务 |
LWLock |
ProcXactMappingLock |
访问进程数组与事务数组之间的关系产生的等待 |
并发事务 |
LWLock |
PruneDirtyQueueLock |
清理脏页队列产生的等待 |
|
LWLock |
RcvWriteLock |
||
LWLock |
RelationMapping |
等待更新用于存储目录到文件节点映射的关系映射文件 |
DDL操作 |
LWLock |
RelationMappingLock |
等待更新用于存储目录到文件节点映射的关系映射文件 |
DDL操作 |
LWLock |
RelCacheInit |
等待读写 relation cache初始化文件(pg_internal.init) |
磁盘IO性能,数据库中表的数量过多 |
LWLock |
RelCacheInitLock |
等待读写 relation cache初始化文件(pg_internal.init) |
磁盘IO性能,数据库中表的数量过多 |
LWLock |
RelfilenodeReuseLock |
避免错误地取消已重用的列属性文件的链接 |
|
LWLock |
replication_origin |
等待读取或者修改复制进度 |
数据库复制 |
LWLock |
replication_slot_io |
等待复制槽上的IO |
数据库复制、磁盘IO性能 |
LWLock |
ReplicationOrigin |
等待设置、删除或使用复制源 |
流复制 |
LWLock |
ReplicationOriginLock |
等待设置、删除或使用复制源 |
流复制 |
LWLock |
ReplicationSlotAllocation |
等待分配或者始放一个复制槽 |
流复制,复制槽 |
LWLock |
ReplicationSlotAllocationLock |
等待分配或者始放一个复制槽 |
流复制,复制槽 |
LWLock |
ReplicationSlotControl |
等待读取或者修改复制槽状态 |
流复制,复制槽 |
LWLock |
ReplicationSlotControlLock |
等待读取或者修改复制槽状态 |
流复制,复制槽 |
LWLock |
ReplicationSlotIO |
等待复制SLOT上的IO |
流复制,复制槽 |
LWLock |
ReplicationSlotLock |
并发访问复制槽 |
流复制,复制槽 |
LWLock |
ResourcePoolHashLock |
等待资源池HASH数据结构,一般是在分配池中连接 |
|
LWLock |
RestartPointQueueLock |
备机恢复性能存在问题 |
|
LWLock |
RoleIdLock |
||
LWLock |
RoleIdPartLock |
||
LWLock |
RollbackReqHashLock |
||
LWLock |
RowPageReplicationLock |
||
LWLock |
RPNumberLock |
||
LWLock |
SearchServerLibLock |
||
LWLock |
SegmentHeadPartitionLock |
||
LWLock |
SerialBuffer |
等待一个用于存储可串行化事务冲突信息的SLRU缓冲区上的IO |
|
LWLock |
SerializableFinishedList |
等待访问serializable 事务完成清单 |
事务隔离级别,并发事务 |
LWLock |
SerializableFinishedListLock |
等待访问serializable 事务完成清单 |
事务隔离级别,并发事务 |
LWLock |
SerializablePredicateLockList |
等待在一个被serializable事务锁锁定的清单上做操作 |
事务隔离级别,并发事务 |
LWLock |
SerializablePredicateLockListLock |
等待在一个被serializable事务锁锁定的清单上做操作 |
事务隔离级别,并发事务 |
LWLock |
SerializableXactHashLock |
等待检索或者存储serializable事务相关的信息 |
事务隔离级别,并发事务 |
LWLock |
SerialSLRU |
等待一个用于存储可串行化事务冲突信息的SLRU缓冲区 |
|
LWLock |
SessionHistLock |
||
LWLock |
SessionRealTLock |
||
LWLock |
SharedTidBitmap |
并行BITMAP INDEX SCAN时等待共享TID的访问闩锁 |
|
LWLock |
SharedTupleStore |
并行查询时等待访问数据块 |
|
LWLock |
ShmemIndex |
等待在共享内存中查找或者分配空间 |
共享内存操作,并发 |
LWLock |
ShmemIndexLock |
等待在共享内存中查找或者分配空间 |
共享内存操作,并发 |
LWLock |
SInvalRead |
等待从共享失效队列中检索或删除消息 |
并发SQL |
LWLock |
SInvalReadLock |
等待从共享失效队列中检索或删除消息 |
并发SQL |
LWLock |
SInvalWrite |
等待在共享失效队列中添加消息 |
并发SQL |
LWLock |
SInvalWriteLock |
等待在共享失效队列中添加消息 |
并发SQL |
LWLock |
StartBlockMappingLock |
||
LWLock |
StreamingEngineConnLock |
||
LWLock |
StreamingEngineExecLock |
||
LWLock |
subtrans |
等待 subtransaction buffer IO操作完成 |
事务并发,磁盘IO性能 |
LWLock |
SubtransBuffer |
等待 subtransaction buffer IO操作完成 |
事务并发,磁盘IO性能 |
LWLock |
SubtransControlLock |
等待读取或者修改子事务信息 |
并发事务,子事务,SAVEPOINT |
LWLock |
SubtransSLRU |
等待 subtransaction buffer并发访问 |
事务并发,磁盘IO性能 |
LWLock |
SyncPaxosLock |
||
LWLock |
SyncRep |
等待读取或更新有关同步复制的信息 |
流复制,同步复制 |
LWLock |
SyncRepLock |
等待读取或更新有关同步复制的信息 |
流复制,同步复制 |
LWLock |
SyncScan |
等待获取表上扫描的开始位置以便于进行同步扫描 |
表或索引扫描操作 |
LWLock |
SyncScanLock |
等待获取表上扫描的开始位置以便于进行同步扫描 |
表或索引扫描操作 |
LWLock |
TablespaceCreate |
等待创建或者删除表空间 |
表空间操作,磁盘IO性能,文件系统 |
LWLock |
TablespaceCreateLock |
等待创建或者删除表空间 |
表空间操作,磁盘IO性能,文件系统 |
LWLock |
tbm |
等待 TBM 共享迭代器锁,一般发生在并行bitmap扫描中,等待TID BITMAP |
并发执行、索引扫描 |
LWLock |
TDEKeyCacheLock |
||
LWLock |
TsTagsCacheLock |
||
LWLock |
TwoPhaseState |
等待读取或者修改prepared transaction的状态 |
分布式事务 |
LWLock |
TwoPhaseStateLock |
等待读取或者修改prepared transaction的状态 |
分布式事务 |
LWLock |
TwoPhaseStatePartLock |
两阶段提交相关的轻量级锁等待 |
两阶段提交相关的轻量级锁等待 |
LWLock |
UHeapStatLock |
||
LWLock |
UndoPerZoneLock |
||
LWLock |
UndoSpaceLock |
||
LWLock |
UndoZoneLock |
||
LWLock |
UniqueSqlEvictLock |
||
LWLock |
UniqueSQLMappingLock |
||
LWLock |
UnlinkRelHashTblLock |
||
LWLock |
UspagrpMappingLock |
||
LWLock |
WaitCountHashLock |
||
LWLock |
wal_insert |
等待将WAL插入缓冲区 |
事务并发、WALBUFFER |
LWLock |
WALBufferInitWait |
初始化WAL BUFFER |
初始化WAL BUFFER |
LWLock |
WALBufMapping |
等待替换 WAL 缓冲区中的页面 |
WAL BUFFER,DML,并发写入 |
LWLock |
WALBufMappingLock |
等待替换 WAL 缓冲区中的页面 |
WAL BUFFER,DML,并发写入 |
LWLock |
WALFlushWait |
等待WAL文件强制刷盘 |
等待WAL强制刷盘 |
LWLock |
WALInitSegment |
初始化WAL文件 |
初始化WAL文件 |
LWLock |
WALInsert |
||
LWLock |
WALInsertLock |
||
LWLock |
WALWrite |
等待从WAL缓冲区中写数据到磁盘 |
DML,并发写入,磁盘IO性能 |
LWLock |
WALWriteLock |
等待从WAL缓冲区中写数据到磁盘 |
DML,并发写入,磁盘IO性能 |
LWLock |
WALWritePaxosLock |
||
LWLock |
WorkloadCGroupHashLock |
||
LWLock |
WorkloadIoStatHashLock |
||
LWLock |
WorkloadIOUtilLock |
||
LWLock |
WorkloadNodeGroupLock |
||
LWLock |
WorkloadRecordLock |
||
LWLock |
WorkloadSessionInfoLock |
||
LWLock |
WorkloadStatHashLock |
||
LWLock |
WorkloadUserInfoLock |
||
LWLock |
WrapLimitsVacuum |
等待修改multixact消耗和transaction id的限制 |
事务并发,磁盘IO性能,VACUUM、维护WORKER配置 |
LWLock |
WrapLimitsVacuumLock |
等待修改multixact消耗和transaction id的限制 |
事务并发,磁盘IO性能,VACUUM、维护WORKER配置 |
LWLock |
XactBuffer |
等待更改事务状态数据,事务状态管理器性能有问题或者IO有问题时会出现该等待 |
|
LWLock |
XactSLRU |
等待更改事务状态数据,事务状态管理器性能有问题时会出现该等待 |
|
LWLock |
XactTruncation |
更新事务状态时的等待,出现在清理过期XID,CKPT等 |
|
LWLock |
XidGen |
等待生成事务XID |
并发事务 |
LWLock |
XidGenLock |
等待生成事务XID |
并发事务 |
LWLock |
XlogRemoveSegLock |
||
STATUS |
acquire lock |
申请锁 |
申请锁 |
STATUS |
acquire lwlock |
申请轻量级锁 |
申请轻量级锁 |
STATUS |
analyze |
分析操作 |
表分析操作 |
STATUS |
cancel query |
取消某连接上正在执行的SQL语句 |
取消某连接上正在执行的SQL语句 |
STATUS |
create index |
索引创建 |
索引创建 |
STATUS |
flush data |
||
STATUS |
get conn |
获取到其他节点的连接 |
获取到其他节点的连接 |
STATUS |
HashAgg - build hash |
HASH JOIN |
HASH JOIN |
STATUS |
HashAgg - write file |
HASH JOIN |
HASH JOIN |
STATUS |
HashJoin - build hash |
HASH JOIN |
HASH JOIN |
STATUS |
HashJoin - write file |
HASH JOIN |
HASH JOIN |
STATUS |
HashSetop - build hash |
HASH JOIN |
HASH JOIN |
STATUS |
HashSetop - write file |
HASH JOIN |
HASH JOIN |
STATUS |
Material |
物化视图操作 |
物化视图操作 |
STATUS |
Material - write file |
物化视图操作 |
物化视图操作 |
STATUS |
NestLoop |
NESTED LOOP表连接 |
NESTED LOOP表连接 |
STATUS |
pooler create conn |
等待pooler建立连接,当前正在与nodename 指定节点建立连接,且仍有N个连接等待建 立 |
等待pooler建立连接 |
STATUS |
reset cmd |
||
STATUS |
set cmd |
当前节点上执行SET命令 |
在连接上执行SET/RESET/TRANSACTION BLOCK LEVEL PARA SET/SESSION LEVEL PARA SET,当前正在nodename指定节点上执 行。 |
STATUS |
Sort |
排序操作 |
排序操作 |
STATUS |
Sort - write file |
物理排序操作中的文件写入 |
物理排序操作中的文件写入 |
STATUS |
stop query |
停止某连接上正在执行的查询 |
停止某连接上正在执行的查询 |
STATUS |
stream get conn |
||
STATUS |
synchronize quit |
||
STATUS |
vacuum |
VACUUM操作 |
VACUUM操作 |
STATUS |
vacuum full |
全量VACUUM操作 |
全量VACUUM |
STATUS |
wait active statement |
||
STATUS |
wait cmd |
等待完成读取网络通信包 |
等待完成读取网络通信包 |
STATUS |
wait data sync |
||
STATUS |
wait data sync queue |
||
STATUS |
wait io |
等待IO |
等待IO |
STATUS |
wait memory |
||
STATUS |
wait node |
||
STATUS |
wait pooler abort conn |
等待pooler完成终止连接 |
等待pooler完成终止连接 |
STATUS |
wait pooler clean conn |
等待pooler完成清理连接 |
等待pooler完成清理连接 |
STATUS |
wait pooler get conn |
等待pooler完成获取连接 |
等待pooler完成获取连接 |
STATUS |
wait producer ready |
||
STATUS |
wait reserve td |
ustore itl等待 |
ustore itl等待 |
STATUS |
wait stream group destroy |
||
STATUS |
wait sync consumer next step |
||
STATUS |
wait sync producer next step |
||
STATUS |
wait transaction sync |
||
STATUS |
wait wal sync |
||
Timeout |
BaseBackupThrottle |
在基础备份时等待限流 |
备份 |
Timeout |
PgSleep |
进程处于 pg_sleep等待 |
|
Timeout |
RecoveryApplyDelay |
在恢复时因为WAL延迟到达产生的等待 |
实例恢复 |