概述
等待事件(Wait event)是KingbaseES数据库性能分析的一项重要的参考指标。
本部分提供KingbaseES数据库系统等待事件的相关信息。
你可以通过下面的SQL语句查询/分析KingbaseES等待事件相关信息。
下面的例子展示了如何查看实时等待事件sys_stat_activity视图
SELECT pid, wait_event_type, wait_event FROM sys_stat_activity WHERE wait_event is NOT NULL; pid | wait_event_type | wait_event ------+------------------+--------------- 2540 | Lock | relation 6644 | LWLock | ProcArrayLock (2 rows)
每一行代表一个服务器进程,显示进程当前所处的等待事件。
5.1. LWLock ¶
后端在等待一个轻量级锁:轻量级锁用于保护共享内存中的数据结构,防止并发问题。
等待事件名称 | 描述 |
---|---|
ShmemIndexLock | 等待 在共享内存中查找或者分配空间。 |
OidGenLock | 等待分配或者赋予一个 OID。 |
XidGenLock | 等待分配或者赋予一个事务 ID。 |
ProcArrayLock | 等待在事 务结尾得到一个快照或者清除事务 ID。 |
SInvalReadLock | 等待从共享无 效消息队列中检索或者移除消息。 |
SInvalWriteLock | 等待在共 享无效消息队列中增加一个消息。 |
WALBufMappingLock | 等待在 WAL 缓冲区中替换一个页面。 |
WALWriteLock | 等待 WAL 缓冲区被写入到磁盘。 |
ControlFileLock | 等待读取 或者更新控制文件或创建一个新的 WAL 文件。 |
CheckpointLock | 等待执行检查点。 |
CLogControlLock | 等待读取或者更新事务状态。 |
SubtransControlLock | 等待读取或者更新子事务信息。 |
MultiXactGenLock | 等 待读取或者更新共享多事务状态。 |
MultiXactOffsetControlLock | 等 待读取或者更新多事务偏移映射。 |
MultiXactMemberControlLock | 等 待读取或者更新多事务成员映射。 |
RelCacheInitLock | 等待读取 或者写入关系缓冲区初始化文件。 |
CheckpointerCommLock | 等待管理 fsync 请求。 |
TwoPhaseStateLock | 等 待读取或者更新预备事务的状态。 |
TablespaceCreateLock | 等待创建或者删除表空间。 |
BtreeVacuumLock | 等待读取或者更新一个 B-树索引的 vacuum 相关的信息。 |
AddinShmemInitLock | 等待管理共享内存中的空间分配。 |
AutovacuumLock | 自动清 理工作者或者启动器等待更新或者 读取自动清理工作者的当前状态。 |
AutovacuumScheduleLock | 等待确 认选中进行清理的表仍需要清理。 |
SyncScanLock | 等待为同步扫 描得到一个表上扫描的开始位置。 |
RelationMappingLock | 等待更新用来存储目录 到文件节点映射的关系映射文件。 |
AsyncCtlLock | 等待读取或者更新共享通知状态。 |
AsyncQueueLock | 等待读取或者更新通知消息。 |
SerializableXactHashLock | 等待检索或 者存储有关可序列化事务的信息。 |
SerializableFinishedListLock | 等待 访问已结束可序列化事务的列表。 |
SerializablePredicateLockListLock | 等待在由可序列化事 务持有的所列表上执行一个操作。 |
OldSerXidLock | 等待读 取或者记录冲突的可序列化事务。 |
SyncRepLock | 等待读 取或者更新有关同步复制的信息。 |
BackgroundWorkerLock | 等 待读取或者更新后台工作者状态。 |
DynamicSharedMemoryControlLock | 等待 读取或者更新动态共享内存状态。 |
AutoFileLock | 等 待更新kingbase.auto.conf文件。 |
ReplicationSlotAllocationLock | 等待分配或者释放一个复制槽。 |
ReplicationSlotControlLock | 等待读取或者更新复制槽状态。 |
CommitTsControlLock | 等 待读取或者更新事务提交时间戳。 |
CommitTsLock | 等待读取或 者更新事务时间戳的最新设置值。 |
ReplicationOriginLock | 等 待设置、删除或者使用复制源头。 |
MultiXactTruncationLock | 等待读取或者阶段多事务信息。 |
OldSnapshotTimeMapLock | 等待 读取或者更新旧的快照控制信息。 |
LogicalRepWorkerLock | 等 待逻辑复制工作者上的动作完成。 |
CLogTruncationLock | 等待执行txid _status或更新可用的最新事务id。 |
clog | 在等地clog (事务状态)缓冲区上的I/O。 |
commit_timestamp | 等待提交时间戳缓冲区上的 I/O。 |
subtrans | 等待子事务缓冲区上的 I/O。 |
multixact_offset | 等待多事务偏移缓冲区上的 I/O。 |
multixact_member | 等待多事务成员缓冲区上的 I/O。 |
async | 等待 async(通知)缓冲区上的 I/O。 |
oldserxid | 等待 oldserxid 缓冲区上的 I/O。 |
wal_insert | 等待把 WAL 插入到一个内存缓冲区。 |
buffer_content | 等待读 取或者写入内存中的一个数据页。 |
buffer_io | 等待一个数据页面上的 I/O。 |
replication_origin | 等待读取或者更新复制进度。 |
replication_slot_io | 等待一个复制槽上的 I/O。 |
proc | 等待读取或者更新 fast-path 锁信息。 |
buffer_mapping | 等待把一个数据 块与缓冲池中的一个缓冲区关联。 |
lock_manager | 等待增加或检查用 于后端的锁,或者等待加入或退 出一个锁定组。 |
predicate_lock_manager | 等待增加或者检查谓词锁信息。 |
serializable_xact | 等待在并行查询 中对一个可序列化事务执行操作。 |
parallel_query_dsa | 等 待并行查询动态共享内存分配锁。 |
tbm | 等待TBM共享迭代器锁。 |
parallel_append | 在Parallel Append计划 执行期间等待选择下一个子计划。 |
parallel_hash_join | 在Parallel Hash计划执行期间等待分配 或交换一块内存或者更新计数器。 |
5.2. Lock ¶
后端在等待一个重量级锁:重量级锁也被称为锁管理器锁或简单锁,主要保护SQL可见的对象,例如表,同时也被用于确保特定内部操作的互斥,如关系扩展。
等待事件名称 | 描述 |
---|---|
relation | 等待获得一个关系上的锁。 |
extend | 等待扩展一个关系。 |
page | 等待获得一个关系上的页面的锁。 |
tuple | 等待获得一个元组上的锁。 |
transactionid | 等待一个事务结束。 |
virtualxid | 等待获得一个虚拟 xid 锁。 |
speculative token | 等待获取一个 speculative insertion lock。 |
object | 等待获得一个非关系数据库对象上的锁。 |
userlock | 等待获得一个用户锁。 |
advisory | 等待获得一个咨询用户锁。 |
5.3. BufferPin ¶
服务器进程在等待访问一个数据缓冲区:此时没有其他进程在检查该缓冲区。如果另一个进程持有一个即将需要读取的数据缓存区的游标,缓冲区 pin 等待可能会被延长。
等待事件名称 | 描述 |
---|---|
BufferPin | 等待在一个缓冲区上加 pin。 |
5.4. Activity ¶
后台辅助进程活动等待:服务器进程处于闲置状态。这类等待被用于在其主处理循环中等待系统进程的活动。
等待事件名称 | 描述 |
---|---|
ArchiverMain | 在归档进程的主循环中等待。 |
AutoVacuumMain | 在autovacuum启动器进程的主循环中等待。 |
BgWriterHibernate | 在后台写入器进程中等待,休眠中。 |
BgWriterMain | 在后台写入器进程的后台工作者的主循环中等待。 |
CheckpointerMain | 在检查点进程的主循环中等待。 |
LogicalApplyMain | 在逻辑应用进程的主循环中等待。 |
LogicalLauncherMain | 在逻辑启动器进程的主循环中等待。 |
PgStatMain | 在统计收集器进程的主循环中等待。 |
RecoveryWalAll | 在恢复时 等待来自于任意类型来源(本地、归档或流)的WAL。 |
RecoveryWalStream | 在恢复时等待来自于一个流的WAL。 |
SysLoggerMain | 在系统日志进程的主循环中等待。 |
WalReceiverMain | 在WAL接收器进程的主循环中等待。 |
WalSenderMain | 在WAL发送器进程的主循环中等待。 |
WalWriterMain | 在WAL写入器进程的主循环中等待。 |
KshMain | 在KSH进程的主循环中等待。 |
KwrMain | 在KWR进程的主循环中等待。 |
5.5. Client ¶
客户端等待:服务器进程在一个套接字上等待来自用户应用的某种活动, 并且该服务器预计将有预期之外的事件发生。
等待事件名称 | 描述 |
---|---|
ClientRead | 等待从客户端读取数据。 |
ClientWrite | 等待向客户端写入数据。 |
LibPQWalReceiverConnect | 在WAL接收器中等待建立与远程服务器的连接。 |
LibPQWalReceiverReceive | 在WAL接收器中等待从远程服务器接收数据。 |
SSLOpenServer | 在尝试连接期间等待SSL。 |
WalReceiverWaitStart | 等待startup进程发送流复制的初始数据。 |
WalSenderWaitForWAL | 在WAL发送器进程中等待WAL被刷写。 |
WalSenderWriteData | 在WAL发送器进程中处理来自WAL接收器的回复时等待任意活动。 |
5.6. Extension ¶
扩展插件等待:服务器进程在一个扩展模块中等待活动。这一类等待用于跟踪自定义等待点。
等待事件名称 | 描述 |
---|---|
Extension | 在一个扩展中等待。 |
5.7. IPC ¶
进程间通讯等待:服务器进程在等待来自服务器中另一个进程的某种活动。
等待事件名称 | 描述 |
---|---|
BgWorkerShutdown | 等待后台工作者关闭。 |
BgWorkerStartup | 等待后台工作者启动。 |
BtreePage | 等待继续并行 B-树扫描所需的页号变得可用。 |
CheckpointDone | 等待检查点完成。 |
CheckpointStart | 等待检查点开始。 |
ClogGroupUpdate | 等待组领 袖在事务结束时更新事务状态。 |
ExecuteGather | 在执行Gathe r节点时等待来自子进程的活动。 |
Hash/Batch/Allocating | 等待一个选出的Parallel Hash参与者分配哈希表。 |
Hash/Batch/Electing | 在选出一个Parallel Hash参与者来分配一个哈希表。 |
Hash/Batch/Loading | 等待其他Parallel Hash参与者完成装载哈希表。 |
Hash/Build/Allocating | 等待一个选出的Parallel Hash参与者分配初始哈希表。 |
Hash/Build/Electing | 在选出一个Parallel Hash参与者以分配初始哈希表。 |
Hash/Build/HashingInner | 等待其他Parallel Hash参 与者完成对内关系的哈希操作。 |
Hash/Build/HashingOuter | 等待其他Parallel Hash参 与者完成对外关系的哈希操作。 |
Hash/GrowBatches/Allocating | 等待一个选出的Parallel Hash参与者分配更多批次。 |
Hash/GrowBatches/Deciding | 在选出一个Parallel H ash参与者决定未来的批次增长。 |
Hash/GrowBatches/Electing | 在选出一个Parallel Hash参与者分配更多批次。 |
Hash/GrowBatches/Finishing | 在等待一个选出的Parallel H ash参与者决定未来的批次增长。 |
Hash/GrowBatches/Repartitioning | 等待其他Parallel Hash参与者完成重新分区。 |
Hash/GrowBuckets/Allocating | 等待一个选出的Parallel Hash参与者完成更多桶的分配。 |
Hash/GrowBuckets/Electing | 在选出一个Parallel Hash参与者分配更多桶。 |
Hash/GrowBuckets/Reinserting | 等待其他Parallel Hash参与者 完成将元组插入到新桶的操作。 |
LogicalSyncData | 等待逻辑复制的远程服务 器发送用于初始表同步的数据。 |
LogicalSyncStateChange | 等待逻 辑复制的远程服务器更改状态。 |
MessageQueueInternal | 等待其 他进程被挂接到共享消息队列。 |
MessageQueuePutMessage | 等待把一个协 议消息写到一个共享消息队列。 |
MessageQueueReceive | 等待 从一个共享消息队列接收字节。 |
MessageQueueSend | 等待向 一个共享消息队列中发送字节。 |
ParallelBitmapScan | 等待并行位图扫描被初始化。 |
ParallelCreateIndexScan | 等待并行CREATE INDEX工作者完成堆扫描。 |
ParallelFinish | 等待并行工作者完成计算。 |
ProcArrayGroupUpdate | 等待组 领袖在事务结束时清除事务ID。 |
Promote | 等待备用节点升级。 |
ReplicationOriginDrop | 等待一个复 制源头变得不活跃以便被删除。 |
ReplicationSlotDrop | 等待一个 复制槽变得不活跃以便被删除。 |
SafeSnapshot | 等待一个用于READ ONLY DEFERRABLE事务的快照。 |
SyncRep | 在同步复制期 间等待来自远程服务器的确认。 |
5.8. Timeout ¶
超时等待:服务器进程在等待一次超时发生。
等待事件名称 | 描述 |
---|---|
BaseBackupThrottle | 当有限流活动时在基础备份期间等待。 |
PgSleep | 在调用pg_sleep的进程中等待。 |
RecoveryApplyDelay | 在恢复时等待应用WAL,因为它被延迟了。 |
5.9. IO ¶
IO等待:服务器进程在等待一次IO完成。
等待事件名称 | 描述 |
---|---|
BufFileRead | 等待从一个缓存的文件中读取。 |
BufFileWrite | 等待向一个缓存的文件中写入。 |
ControlFileRead | 等待从控制文件中读取。 |
ControlFileSync | 等待控制文件到达稳定存储。 |
ControlFileSyncUpdate | 等待对控制文件的更新到达稳定存储。 |
ControlFileWrite | 等待一个对控制文件的写入。 |
ControlFileWriteUpdate | 等待一个写操作更新控制文件。 |
CopyFileRead | 在文件拷贝操作期间等待一个读操作。 |
CopyFileWrite | 在文件拷贝操作期间等待一个写操作。 |
DataFileExtend | 等待一个关系数据文件被扩充。 |
DataFileFlush | 等待一个关系数据文件到达稳定存储。 |
DataFileImmediateSync | 等待一 个关系数据文件的立即同步到达稳定存储。 |
DataFilePrefetch | 等 待从一个关系数据文件中的一次异步预取。 |
DataFileRead | 等待一次对一个关系数据文件的读操作。 |
DataFileSync | 等待 对一个关系数据文件的更改到达稳定存储。 |
DataFileTruncate | 等待一个关系数据文件被截断。 |
DataFileWrite | 等待一次对一个关系数据文件的写操作。 |
DSMFillZeroWrite | 等待 向一个动态共享内存备份文件中写零字节。 |
LockFileAddToDataDirRead | 在向数据 目录锁文件中增加一行时等待一个读操作。 |
LockFileAddToDataDirSync | 在向数据目录锁 文件中增加一行时等待数据到达稳定存储。 |
LockFileAddToDataDirWrite | 在向数据 目录锁文件中增加一行时等待一个写操作。 |
LockFileCreateRead | 在创建数据目录锁文件期间等待读取。 |
LockFileCreateSync | 在创建数 据目录锁文件期间等待数据到达稳定存储。 |
LockFileCreateWrite | 在 创建数据目录锁文件期间等待一个写操作。 |
LockFileReCheckDataDirRead | 在重新检查 数据目录锁文件的过程中等待一个读操作。 |
Lo gicalRewriteCheckpointSync | 在一个检 查点期间等待逻辑重写映射到达稳定存储。 |
LogicalRewriteMappingSync | 在一次 逻辑重写期间等待映射数据到达稳定存储。 |
LogicalRewriteMappingWrite | 在一 次逻辑重写期间等待对映射数据的写操作。 |
LogicalRewriteSync | 等待逻辑重写映射到达稳定存储。 |
LogicalRewriteWrite | 等待对逻辑重写映射的写操作。 |
RelationMapRead | 等待对关系映射文件的读操作。 |
RelationMapSync | 等待关系映射文件到达稳定存储。 |
RelationMapWrite | 等待对关系映射文件的写操作。 |
ReorderBufferRead | 在重排序缓冲区管理期间等待一个读操作。 |
ReorderBufferWrite | 在重排序缓冲区管理期间等待一个写操作。 |
ReorderLogicalMappingRead | 在重排序缓冲 区管理期间等待对一个逻辑映射的读操作。 |
ReplicationSlotRead | 等待对一个复制槽控制文件的读操作。 |
ReplicationSlotRestoreSync | 在把一个复制槽控制文件 恢复到内存的过程中等待它到达稳定存储。 |
ReplicationSlotSync | 等待一个复制槽控制文件到达稳定存储。 |
ReplicationSlotWrite | 等待对一个复制槽控制文件的写操作。 |
SLRUFlushSync | 在检查点或者数 据库关闭期间等待SLRU数据到达稳定存储。 |
SLRURead | 等待对一个SLRU页面的读操作。 |
SLRUSync | 等待 SLRU数据在一个页面写之后到达稳定存储。 |
SLRUWrite | 等待一个SLRU页面上的写操作。 |
SnapbuildRead | 等待一个序列化历史目录快照的读操作。 |
SnapbuildSync | 等 待一个序列化历史目录快照到达稳定存储。 |
SnapbuildWrite | 等待一个序列化历史目录快照的写操作。 |
TimelineHistoryFileSync | 等待一个通过流复 制接收到的时间线历史文件到达稳定存储。 |
TimelineHistoryFileWrite | 等待一个通过 流复制接收到的时间线历史文件的读操作。 |
TimelineHistoryRead | 等待一个时间线历史文件上的读操作。 |
TimelineHistorySync | 等待一 个新创建的时间线历史文件达到稳定存储。 |
TimelineHistoryWrite | 等待 一个新创建的时间线历史文件上的写操作。 |
TwophaseFileRead | 等待一个两阶段状态文件的读操作。 |
TwophaseFileSync | 等待一个两阶段状态文件到达稳定存储。 |
TwophaseFileWrite | 等待一个两阶段状态文件的写操作。 |
WALBootstrapSync | 在自举期间等待WAL到达稳定存储。 |
WALBootstrapWrite | 在自举期间等待一个WAL页面的写操作。 |
WALCopyRead | 在通过拷贝一个已有W AL段创建一个新的WAL段时等待一个读操作。 |
WALCopySync | 等待一个通过拷 贝已有WAL段创建的新WAL段到达稳定存储。 |
WALCopyWrite | 在通过拷贝一个已有W AL段创建一个新的WAL段时等待一个写操作。 |
WALInitSync | 等待一个新初始化的WAL文件到达稳定存储。 |
WALInitWrite | 在初 始化一个新的WAL文件期间等待一个写操作。 |
WALRead | 等待一次对一个WAL文件的读操作。 |
WA LSenderTimelineHistoryRead | 在walsender的时间线命令 期间等待对一个时间线历史文件的读操作。 |
WALSync | 等待WAL文件到达持久的存储空间。 |
WALSyncMethodAssign | 在 指派WAL同步方法时等待数据到达稳定存储。 |
WALWrite | 等待一次对一个WAL文件的写操作。 |
最后
以上就是含蓄花卷为你收集整理的金仓数据库KingbaseES数据库参考手册(5. 等待事件 )5.1. LWLock ¶5.2. Lock ¶5.3. BufferPin ¶5.4. Activity ¶5.5. Client ¶5.6. Extension ¶5.7. IPC ¶5.8. Timeout ¶5.9. IO ¶的全部内容,希望文章能够帮你解决金仓数据库KingbaseES数据库参考手册(5. 等待事件 )5.1. LWLock ¶5.2. Lock ¶5.3. BufferPin ¶5.4. Activity ¶5.5. Client ¶5.6. Extension ¶5.7. IPC ¶5.8. Timeout ¶5.9. IO ¶所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复