昨天发了篇关于分布式数据库的聊聊类不同点的文章,实际上分布式数据库的待事特点是分片与并行计算,所以无论哪种架构,析最新版最终都会通过分片和并行计算来提供强大的聊聊类横向扩展能力与并行处理能力。最终的待事目标都是在计算层通过强大的,远超过集中式数据库复杂度的析最新版CBO优化器,产生优秀的聊聊类,可大量并发执行的待事执行计划,并将最小粒度的析最新版算子下推到其他计算节点或者存储节点去做并行计算;在存储层,通过更细粒度的聊聊类分片管理,能够更为精细化的待事管理数据分片;在资源管理层,具有强大的析最新版资源管理和隔离能力,确保关键任务与普通任务能够以不同的聊聊类优先级获得各种算力资源,同时能够通过多租户能力为用户提供各种需求的待事资源。
今天我们来谈谈数据库的析最新版等待事件问题。等待事件是亿华云计算做性能优化、故障诊断的利器。Oracle数据库在7.3开始通过OWI提供了等待事件接口,自此开始,等待事件已经成为DBA分析数据库的最为重要的手段之一。
最近我一直在梳理PG及其相近与相兼容的数据库的等待事件,用于D-SMART的运维知识图谱之中。前阵子去阿布吉徒步,这个工作被耽搁了半个月,今天下午终于完成了初稿。整理等待事件的知识主要的目的是用于运维中的自动化诊断。根据数据库内部等待事件的情况来判断系统可能在哪些方面出现了问题。
图片
根据数据库中的等待事件,通过智能化诊断算法去做一个初步分析,为运维专家提供一些参考:
图片
比如上面的案例,通过等待事件分析,发现系统中的HASH JION的并发执行过大。云服务器
本次梳理的等待事件涵盖了PostgreSQL(9.x-15),openGauss系列数据库,包含海量G100、南大通用GBASE 8C、MogDB等兼容国产数据库。以及华为商用版的Gaussdb、Gaussdb DWS,以及阿里Polardb-Postgresql、Polardb-O等相关兼容的数据库产品。
等待事件的知识图谱要覆盖数据库的各种历史版本,才能在各种用户的场景中发挥作用。我在梳理等待事件的时候,对于某些等待事件也知之不多,因此经常向各个厂家的朋友请教,在这里我也要对给与我帮助的各个友商的朋友表示感谢。
在梳理等待事件知识图谱的时候,我也经常会遇到某些等待事件,目前已经被厂商废弃了,因此很难给出明确的答案。我想对于数据库产品的研发人员来说,可以不太去关注已经废弃的b2b供应网功能,但是对于数据库厂商来说,这些功能虽然在新版本的数据库中被废弃了,但是低版本的数据库可能还在用户侧运行着,这些用户也应该是数据库厂商的服务对象。这些被废弃的等待事件,其知识内容也还是应该继续有人维护的。
如果大家对PG类数据库的等待事件感兴趣,可以收藏。同时本文中的一些知识梳理过程中肯定存在一些不准确甚至错误的地方。也希望有共同爱好的朋友指出其中的错误,让这个知识库更加准确。我也将定期将修订后的版本发布给大家。当前的版本,在我们公司内部的版本号是5.3。
分类
名称
描述
关联根因
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连接
网络问题、SSL配置问题
Client
WalReceiverWaitStart
等待启动进程发送初始化复制数据流
网络问题、SSL配置问题
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,分布式事务
IO
DisableConnectFileSync
HA锁分片逻辑文件强制刷盘
磁盘IO,分布式事务
IO
DisableConnectFileWrite
HA锁分片逻辑文件写入
磁盘IO,分布式事务
IO
DoubleWriteFileRead
双写文件读,和双写区IO有关的读
磁盘IO,DML操作
IO
DoubleWriteFileWrite
双写文件写,与脏快写盘有关
并发DML、DML操作
IO
DSMFillZeroWrite
等待向一个动态共享内存文件写入字节0
并行查询、系统并发、后台任务
IO
DWSingleFlushGetPos
单页面双写文件查找可用位置
磁盘IO,并发DML
IO
DWSingleFlushWrite
刷新双写数据到永久存储
磁盘IO,并发DML
IO
LockFileAddToDataDirRead
向数据目录中添加锁文件时的等待
磁盘IO,读写权限,数据库配置错误
IO
LockFileAddToDataDirSync
向数据目录添加锁文件时刷新产生的等待
磁盘IO,读写权限,数据库配置错误
IO
LockFileAddToDataDirWrite
向数据目录添加锁文件时写入产生的等待
磁盘IO,读写权限,数据库配置错误
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
初始化max_page_flush_lsn,启动数据库时,设置每个节点的最大页面刷新日志序列号(LSN)的操作
数据库启动
IO
MPFL_READ
在读取多进程文件日志(MPFL)时等待文件操作的完成
磁盘IO,并发事务
IO
MPFL_WRITE
在写入多进程文件日志(MPFL)时等待文件操作的完成
磁盘IO,并发事务
IO
OBSList
对象存储相关,遍历OBS目录
磁盘IO
IO
OBSRead
对象存储相关,读取OBS对象
磁盘IO
IO
OBSWrite
对象存储相关,写入OBS对象
IO
PredoApply
等待并行回放应用回放
并行恢复、流复制
IO
PredoProcessPending
并行日志回放中当前记录回放等待其它记录回放完
成并行日志恢复
IO
RelationMapRead
读取系统表到存储位置之间的映射文件
磁盘IO、并发DDL、并发SQL执行
IO
RelationMapSync
等待Relation Map文件写入持久存储
磁盘IO
IO
RelationMapWrite
等待Relation Map文件写
磁盘IO、并发DML、并发DDL
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
将pg_clog、pg_subtrans和pg_multixact文件持久化到磁盘。主要在执行checkpoint和数据库停机时发生
磁盘IO、检查点、数据库关闭、并发事务
IO
SLRURead
后台进程正在等待从SLRU(Simple LRU)文件中读取数据。SLRU文件是一种用于存储固定大小的记录的简单缓冲区管理器,例如pg_clog、pg_subtrans和pg_multixact
磁盘IO、并发事务、子事务嵌套
IO
SLRUSync
页写入后等待SLRU数据写入持久存储
磁盘IO、并发事务、子事务嵌套
IO
SLRUWrite
等待 SLRU 页写操作
磁盘IO、并发事务、子事务嵌套
IO
SnapbuildRead
后台进程正在等待从snapbuild文件中读取数据,snapbuild文件是一种用于存储逻辑复制的快照信息的文件,例如pg_logical/snapshots和pg_logical/replorigin_checkpoint
磁盘IO、并发事务、逻辑复制
IO
SnapbuildSync
等待序列化的历史目录快照写入持久存储
磁盘IO、并发事务、逻辑复制
IO
SnapbuildWrite
等待写入序列化的历史目录快照
磁盘IO、并发事务、逻辑复制
IO
StrategyGetBuffer
表示后台进程正在等待从缓冲区管理器中获取一个可用的缓冲区页面。缓冲区管理器使用Clock Sweep算法来选择一个候选的缓冲区页面,如果该页面是干净的,或者可以被写回磁盘,那么就可以分配给后台进程。如果该页面是脏的,或者被其他进程锁定或引用,那么就需要继续扫描下一个页面。当缓冲区中的页面都很繁忙时,就会出现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
Promote
等待备用节点升级
备库升级
IPC
ReplicationOriginDrop
等待复制源变为非活动状态以被删除
复制槽
IPC
ReplicationOriginDrop
等待一个复制源头变得不活跃以便被删除
复制槽
IPC
ReplicationSlotDrop
等待复制槽变为非活动状态以被删除
复制槽
IPC
ReplicationSlotDrop
等待一个复制槽变得不活跃以便被删除
复制槽
IPC
SafeSnapshot
等 待 一 个 用 于 READ ONLY DEFERRABLE 事务的快照,一般在串行事务隔离级别出现
只读事务、串行隔离级别
IPC
SyncRep
同步复制时等待远程服务确认
同步复制
Lock
advisory
等待获取建议用户锁
并发事务
Lock
cstore_freespace
对列存空闲空间加锁
列存储
Lock
extend
等待扩展 relation结束
文件扩展,并发写入
Lock
filenode
对文件名加锁,文件扩展、TRUNCATE等
并发执行,并发DDL
Lock
frozenid
等待修改 pg_database.datfrozenxid和 pg_database.datminmxid.
VACUUM、磁盘IO性能、数据库配置
Lock
object
除了relation外的其他数据库对象(DB,SCHEMA等)
DDL操作
Lock
page
等待获取relation中的一个页面的锁
热块、SHARED BUFFERS
Lock
partition
保护分区元数据一致性的串行化等待
DDL操作,并发执行
Lock
partition_seq
对分区表的分区加锁
DDL操作,并发执行
Lock
relation
等待获得一个关系上的锁
并发执行
Lock
speculative token
等待获取推测插入锁
热块、事务并发、热表
Lock
subtransactionid
对子事务号加锁
子事务
Lock
transactionid
等待一个事务结束
事务并发
Lock
tuple
等待获取元组(tuple)锁
热块、事务并发
Lock
userlock
等待获取用户锁
用户锁
Lock
virtualxid
等待获取虚拟XID锁
并发执行、活跃会话
LWLock
AddinShmemInit
等待共享内存中的内存空间管理
共享内存初始化
LWLock
AddinShmemInitLock
等待共享内存中的内存空间管理
共享内存初始化
LWLock
AlterPortLock
用于保护CN更改注册端口号的操作
修改端口号
LWLock
ASPMappingLock
用于管理ASP的hash表的并发访存
活跃会话历史数据
LWLock
async
等待async (notify) buffer IO完成
活跃会话、磁盘IO性能
LWLock
Async Ctl
用于保护Async buffer
会话交互
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
用于保护CU Cache全局信息
列存
LWLock
CaptureViewFileHashLock
开启性能视图采集时,保护哈希表的并发访存
性能采集
LWLock
CBMParseXlogLock
控制cbm文件(变更位图文件)的并发访存
变更位图文件访问锁,增量备份
LWLock
CheckpointerComm
等待管理fsync 请求
磁盘IO性能,并发写入
LWLock
CheckpointerCommLock
等待管理fsync 请求
磁盘IO性能,并发写入
LWLock
CheckpointLock
等待执行CKPT
并发事务
LWLock
clog
等待CLOG缓冲区的IO操作
事务并发、磁盘IO性能
LWLock
CLOG Ctl
控制各个clog分区信息的并发访存
并发事务,并发DML
LWLock
CLogBufMappingLock
控制共享clog页面映射的并发访存
并发事务,并发DML
LWLock
CLogControlLock
等待读取或者修改事务状态
并发事务
LWLock
CLogTruncationLock
等待执行txid_status 或者将可获得的最老的transaction id赋给它
事务并发、磁盘IO性能、检查点配置
LWLock
ClusterRPLock
用于加速集群的CCN中维护的集群负载数据的并发存取控制(新版本已废弃)
集群负载控制
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
用于时序consumer工作状态更新
时序数据压缩
LWLock
ControlFile
等待读取或者修改控制文件,或者创建一个新的WAL文件
DML,并发写入,磁盘IO性能
LWLock
ControlFileLock
等待读取或者修改控制文件,或者创建一个新的WAL文件
DML,并发写入,磁盘IO性能
LWLock
CSNBufMappingLock
控制共享csnlog页面映射的并发访存
全局事务,并发事务
LWLock
CSNLOG Ctl
控制各个csnlog分区信息的并发访存
全局事务,并发事务
LWLock
CsnMinLock
控制csn min信息的并发访存
并发事务,MVCC
LWLock
CStoreColspaceCacheLock
用于保护列存表的CU空间分配
列存储缓冲
LWLock
CStoreCUCacheSweepLock
用于列存CU Cache循环淘汰
列存储缓冲
LWLock
CUSlotListLock
用于存储列存储分布表的数据分布信息,便于为优化器编译提供数据
列存储、SQL解析
LWLock
DataCacheLock
列存模式下CU的并发修改锁
列存储,DML
LWLock
DataFileIdCacheLock
列存模式下CU的并发修改锁
列存储,DML
LWLock
DataSyncRepLock
用于在主备复制时保护数据页同步信息
DML,并发事务、集群同步
LWLock
DelayDDLLock
串行化DDL操作的锁
并发DDL
LWLock
DeleteCompactionLock
VACUUM FULL时需要申请的锁
VACUUM
LWLock
DeleteConsumerLock
SQL执行过程中进行消费者端操作时需要的锁等待。分布式执行、并行执行等都会产生消费者端操作
分布式执行,并行执行
LWLock
DfsConnectorCacheLock
用于保护缓存HDFS连接的句柄的全局哈希表
hdfs
LWLock
DfsSpaceCacheLock
用于控制HDFS表导入时文件ID单调递增
hdf、数据导入
LWLock
DfsUserLoginLock
用于保护HDFS用户信息的全局链表
hdfs、用户登录
LWLock
DnUsedSpaceHashLock
DN节点统计使用空间的排他锁,避免相同的统计任务冲突
DN节点、空间使用统计
LWLock
DoubleWriteLock
保护双写缓冲的闩锁
脏块写
LWLock
dummyServerInfoCacheLock
用于保护缓存加速集群连接信息的全局哈希表
登录、查询连接信息
LWLock
DWSingleFlushFirstLock
Dn节点CKPT增量刷脏块
CKPT增量刷脏块
LWLock
DWSingleFlushPosLock
Dn节点刷新脏块
CKPT增量刷脏块
LWLock
DWSingleFlushWriteLock
Dn节点刷新脏块
CKPT增量刷脏块
LWLock
DynamicSharedMemoryControl
等待读取或者修改动态共享内存状态
动态共享内存分配、释放
LWLock
DynamicSharedMemoryControlLock
等待读取或者修改动态共享内存状态
动态共享内存分配、释放
LWLock
ExtensionConnectorLibLock
连接池建立时加载动态链接库的等待事件
LOGON
LWLock
FdwPartitionCacheLock
多个并发会话并发访问外部表分区缓冲
外部表并发访问
LWLock
FileStatLock
用于保护存储统计文件信息的数据结构
访问文件统计信息
LWLock
FullBuildXlogCopyStartPtrLock
保护全量备份时的日志起始点的轻量级锁
全量备份
LWLock
GeneralExtendedLock
使用扩展的并发量较大
扩展
LWLock
GlobalPrevHashLock
全局前置HASH表操作并发引发,和缓冲、配置信息等全局信息的访问有关
各类缓冲访问
LWLock
GlobalSeqLock
并发访问全局序列号引发的等待
序列号
LWLock
GlobalWorkloadLock
全局WORKLOAD统计信息的访问
AWR
LWLock
GPCClearLock
并发清除全局计划缓冲
计划缓冲、SQL解析
LWLock
GPCCommitLock
用于保护全局Plan Cache hash表的添加操作
SQL解析
LWLock
GPCMappingLock
用于全局Plan Cache缓存管理
SQL解析、高并发执行
LWLock
GPCTimelineLock
用于保护全局Plan Cache hash表检查Timeline的操作
SQL解析(已废弃)
LWLock
GTMHostInfoLock
已废弃
LWLock
gtt_shared_ctl
已废弃
LWLock
HadrSwitchoverLock
主备故障切换
主备切换
LWLock
HypoIndexLock
用于保护假索引的创建和删除
虚拟索引、SQL优化
LWLock
InstanceRealTLock
用于保护共享实例统计信息hash表的更新操作
指标采集
LWLock
InstanceTimeLock
用于获取实例中会话的时间信息
指标采集、会话数过多
LWLock
InstrUserLockId
用户登录登出数据库
用户登录登出
LWLock
InstrWorkloadLock
保护负载管理统计信息的内存hash表访问
指标采集
LWLock
IOStatLock
保护IO资源统计信息的锁
指标采集
LWLock
JobShmemLock
用于定时任务功能中保护定时读取的全局变量
定时任务执行
LWLock
LLVMDumpIRLock
用于导出动态生成函数所对应的汇编语言
SQL解析,LLVM
LWLock
LLVMParseIRLock
用于在查询开始处从IR文件中编译并解析已写好的IR函数
SQL解析,LLVM
LWLock
lock_manager
在并行执行中,等待为后端添加或检查锁,或者等待加入或退出锁组
事务并发
LWLock
LockFastPath
等待更新进程的FAST PATH LOCK信息
事务并发
LWLock
LockManager
在并行执行中,等待为后端添加或检查锁,或者等待加入或退出锁组
事务并发
LWLock
LockMgrLock
在并行执行中,等待为后端添加或检查锁,或者等待加入或退出锁组
事务并发
LWLock
LogicalReplicationSlotPersistentDataLock
用于保护逻辑复制过程中复制槽位的数据
流复制
LWLock
LogicalRepWorkerLock
等待逻辑复制的WORKER结束任务
流复制
LWLock
LsnXlogChkFileLock
用于串行更新特定结构中记录的主备机的xlog flush位置点,保证主备服务器的数据一致性
流复制
LWLock
LWTRANCHE_ACCOUNT_TABLE
控制账户锁定状态hash表的并发读写
安全控制、登录
LWLock
MatviewSeqnoLock
物化视图序号锁等待
物化视图操作相关
LWLock
MaxPageFlushLsnFileLock
用于保护最大页面刷新LSN文件的并发更新
并发DML
LWLock
MetaCacheLock
用于保护MetaCache
并发DML,并发解析
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
对于保护nodegroup哈希表的单个分桶并发修改加锁,用于全局sequence
SEQUENCE,分布式
LWLock
NodeTableLock
用于保护存放数据库节点信息的共享结构,用于保护存放CN和DN节点信息的共享结构1
集群管理
LWLock
NormalizedSqlLock
用于SQL规范化转换
并发解析
LWLock
NotifyBuffer
等待Notify buffer的SLRU缓冲区上的IO
IPC,IO性能
LWLock
NotifyQueue
等待读取或者修改Notify消息
IPC,并发DDL
LWLock
NotifyQueueTail
等待修改通知消息存储限制
ipc
LWLock
NotifyQueueTailLock
等待修改通知消息存储限制
ipc
LWLock
NotifySLRU
等待访问Notify SLRU缓冲
ipc
LWLock
OBSGetPathLock
用于避免对obs路径的写写并发和读写并发,和对象存储有关
对象存储
LWLock
OBSRuntimeLock
用于获取环境变量,如GASSHOME
环境变量
LWLock
OidGen
等待分配或者赋予一个 OID
并发DDL
LWLock
OidGenLock
等待分配或者赋予一个 OID
并发DDL
LWLock
oldserxid
等待oldserxid buffer IO完成
磁盘IO性能,事务并发
LWLock
OldSerXid SLRU Ctl
保护old xids的slru buffer
MVCC,并发事务
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
全局百分位缓冲区争用,全局PercentileBuffer是GaussDB中的一个全局变量,用于存储每个算子的执行时间的百分位数
并发执行,SQL解析
LWLock
PerSessionDSA
等待并行查询动态共享内存分配锁
并行执行
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
防止并发调用WalDataRcvWrite
流复制
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
用于加速openGauss的数据库节点对正在执行计划的任务线程的计数
并行执行
LWLock
SearchServerLibLock
用于GPU加速场景初始化加载特定动态库时,对读文件操作进行加锁
GPU加速,加载动态链接库
LWLock
SegmentHeadPartitionLock
保护段页式segment头部元信息的分区锁
DDL,分区表
LWLock
SerialBuffer
等待一个用于存储可串行化事务冲突信息的SLRU缓冲区上的IO
IO
LWLock
SerializableFinishedList
等待访问serializable 事务完成清单
事务隔离级别,并发事务
LWLock
SerializableFinishedListLock
等待访问serializable 事务完成清单
事务隔离级别,并发事务
LWLock
SerializablePredicateLockList
等待在一个被serializable事务锁锁定的清单上做操作
事务隔离级别,并发事务
LWLock
SerializablePredicateLockListLock
等待在一个被serializable事务锁锁定的清单上做操作
事务隔离级别,并发事务
LWLock
SerializableXactHashLock
等待检索或者存储serializable事务相关的信息
事务隔离级别,并发事务
LWLock
SerialSLRU
等待一个用于存储可串行化事务冲突信息的SLRU缓冲区
IO
LWLock
SessionHistLock
用于避免并发访问或者修改记录query级历史数据的全局结构
GSP
LWLock
SessionRealTLock
用于避免并发访问或者修改记录query级实时数据的全局结构
GSP
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
用于globalstat从pgstat获取startblockarray等信息
PGSTATE
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
保护paxos同步队列的并发访存
副本复制
LWLock
SyncRep
等待读取或更新有关同步复制的信息
流复制,同步复制
LWLock
SyncRepLock
等待读取或更新有关同步复制的信息
流复制,同步复制
LWLock
SyncScan
等待获取表上扫描的开始位置以便于进行同步扫描
表或索引扫描操作
LWLock
SyncScanLock
等待获取表上扫描的开始位置以便于进行同步扫描
表或索引扫描操作
LWLock
TablespaceCreate
等待创建或者删除表空间
表空间操作,磁盘IO性能,文件系统
LWLock
TablespaceCreateLock
等待创建或者删除表空间
表空间操作,磁盘IO性能,文件系统
LWLock
tbm
等待 TBM 共享迭代器锁,一般发生在并行bitmap扫描中,等待TID BITMAP
并发执行、索引扫描
LWLock
TDEKeyCacheLock
控制透明加密数据密钥缓存的并发读写
透明加密
LWLock
TsTagsCacheLock
用于时序tag缓存管理
时序数据相关
LWLock
TwoPhaseState
等待读取或者修改prepared transaction的状态
分布式事务
LWLock
TwoPhaseStateLock
等待读取或者修改prepared transaction的状态
分布式事务
LWLock
TwoPhaseStatePartLock
两阶段提交相关的轻量级锁等待
两阶段提交相关的轻量级锁等待
LWLock
UHeapStatLock
保护ustore统计信息的并发访存
ustore统计信息
LWLock
UndoPerZoneLock
保护每个undozone内信息的并发访存
UNDO,USTORE
LWLock
UndoSpaceLock
保护undospace的并发访存
UNDO,USTORE
LWLock
UndoZoneLock
保护undozone的并发访存
UNDO,USTORE
LWLock
UniqueSqlEvictLock
开启Unique SQL回收时,保护哈希表的并发访存
SQL统计信息
LWLock
UniqueSQLMappingLock
用于保护uniquesql hash table
SQL统计信息
LWLock
UnlinkRelHashTblLock
保护共享内存中待删除文件哈希表的并发访存
文件删除
LWLock
UspagrpMappingLock
LWLock
WaitCountHashLock
用于保护用户语句计数功能场景中的共享结构
PGSTAT相关信息统计
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
用于避免与其它WAL插入操作并发执行
REDO并发,并发DML,并发事务
LWLock
WALInsertLock
用于避免与其它WAL插入操作并发执行
REDO并发,并发DML,并发事务
LWLock
WALWrite
等待从WAL缓冲区中写数据到磁盘
DML,并发写入,磁盘IO性能
LWLock
WALWriteLock
等待从WAL缓冲区中写数据到磁盘
DML,并发写入,磁盘IO性能
LWLock
WALWritePaxosLock
保护向paxos复制组件写wal日志的并发顺序
集群副本复制
LWLock
WorkloadCGroupHashLock
用于避免并发访问或者修改Cgroup信息构成的哈希表
负载采集
LWLock
WorkloadIoStatHashLock
用于避免并发访问或者修改用于统计当前数据库节点的IO信息的哈希表
负载采集
LWLock
WorkloadIOUtilLock
用于保护记录iostat,CPU等负载信息的结构
负载采集
LWLock
WorkloadNodeGroupLock
用于避免并发访问或者修改内存中的nodegroup信息构成的哈希表
负载采集
LWLock
WorkloadRecordLock
用于避免并发访问或修改在内存自适应管理时对数据库主节点收到请求构成的哈希表
负载采集
LWLock
WorkloadSessionInfoLock
保护负载管理session info内存hash表访问
负载采集
LWLock
WorkloadStatHashLock
用于避免并发访问或者修改包含数据库主节点的SQL请求构成的哈希表
负载采集
LWLock
WorkloadUserInfoLock
用于避免并发访问或修改负载管理的用户信息哈希表
负载采集
LWLock
WrapLimitsVacuum
等待修改multixact消耗和transaction id的限制
事务并发,磁盘IO性能,VACUUM、维护WORKER配置
LWLock
WrapLimitsVacuumLock
等待修改multixact消耗和transaction id的限制
事务并发,磁盘IO性能,VACUUM、维护WORKER配置
LWLock
XactBuffer
等待更改事务状态数据,事务状态管理器性能有问题或者IO有问题时会出现该等待
并发事务,io性能
LWLock
XactSLRU
等待更改事务状态数据,事务状态管理器性能有问题时会出现该等待
并发事务
LWLock
XactTruncation
更新事务状态时的等待,出现在清理过期XID,CKPT等
并发事务,VACUUM
LWLock
XidGen
等待生成事务XID
并发事务
LWLock
XidGenLock
等待生成事务XID
并发事务
LWLock
XlogRemoveSegLock
保护Xlog段文件的回收操作
并发事务,WAL配置
STATUS
acquire lock
申请锁
申请锁
STATUS
acquire lwlock
申请轻量级锁
申请轻量级锁
STATUS
analyze
分析操作
表分析操作
STATUS
cancel query
取消某连接上正在执行的SQL语句
取消某连接上正在执行的SQL语句
STATUS
create index
索引创建
索引创建
STATUS
flush data
等待向网络中nodename指定节点的plevel对应线程发送数据。如果状态包含phase信息,则可能的阶段状态为wait quota,即当前通信流正在等待quota值
集群同步
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
初始化stream flow时,等待与nodename节点的consumer对象建立连接,且当前有N个待建连对象
流复制
STATUS
synchronize quit
stream plan结束时,等待stream线程组内的线程统一退出
流复制
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
等待把行存的数据页或列存的CU放入同步队列
流复制
STATUS
wait io
等待IO
等待IO
STATUS
wait memory
等待内存获取
流复制
STATUS
wait node
等待接收与某节点的连接上的数据,当前正在等待nodename节点plevel线程的数据,且仍有N个连接的数据待返回
流复制
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
初始化stream flow时,等待每个producer都准备好,当前正在等待nodename节点plevel对应线程的producer对象准备好,且仍有N个producer对象处于等待状态
流复制
STATUS
wait reserve td
ustore itl等待
ustore itl等待
STATUS
wait stream group destroy
流复制
流复制
STATUS
wait sync consumer next step
Stream算子等待消费者执行
流复制
STATUS
wait sync producer next step
Stream算子等待生产者执行
流复制
STATUS
wait transaction sync
等待xid指定事务同步
流复制
STATUS
wait wal sync
等待特定LSN的wal log完成到备机的同步
流复制
Timeout
BaseBackupThrottle
在基础备份时等待限流
备份
Timeout
PgSleep
进程处于 pg_sleep等待
Timeout
RecoveryApplyDelay
在恢复时因为WAL延迟到达产生的等待
实例恢复
相关文章:
相关推荐:
IT资讯网源码库香港云服务器服务器租用企商汇源码下载益华科技亿华云IT技术网云站无忧益华IT技术论坛益华科技亿华互联亿华智造极客编程益强数据堂云智核技术快报益强智未来创站工坊码力社益华科技运维纵横益强编程堂科技前瞻IT资讯网益强智囊团益强编程舍思维库亿华云亿华科技多维IT资讯码上建站益强科技编程之道亿华灵动益强IT技术网智能时代益强资讯优选亿华智慧云亿华云计算益强前沿资讯全栈开发汇智坊
2.3453s , 12816.9921875 kb
Copyright © 2025 Powered by 聊聊PG类等待事件分析最新版(V5.3-20230731),汇智坊 滇ICP备2023006006号-2