【数据库】PG相关等待事件

文章目录


前言

等待事件是分析数据库性能问题重要手段,PG数据库可以通过pg_stat_activity视图查询当前系统相关等待事件。


select wait_event_type,wait_event,stat,backend_type,sbustr(query,0,30) query,count(*) from sys_stat_activity group by wait_event_type,wait_event,stat,backend_type,state,query order by count desc limit5;

分类 名称 描述 关联根因
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,流复制
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值