网络
虚拟私有云 VPC
弹性公网IP EIP
弹性负载均衡 ELB
NAT网关 NAT
云专线 DC
虚拟专用网络 VPN
云连接 CC
VPC终端节点 VPCEP
企业路由器 ER
企业交换机 ESW
全球加速 GA
企业连接 EC
云原生应用网络 ANC
安全与合规
安全技术与应用
Web应用防火墙 WAF
企业主机安全 HSS
云防火墙 CFW
安全云脑 SecMaster
DDoS防护 AAD
数据加密服务 DEW
数据库安全服务 DBSS
云堡垒机 CBH
数据安全中心 DSC
云证书管理服务 CCM
威胁检测服务 MTD
态势感知 SA
认证测试中心 CTC
边缘安全 EdgeSec
应用中间件
微服务引擎 CSE
分布式消息服务Kafka版
分布式消息服务RabbitMQ版
分布式消息服务RocketMQ版
API网关 APIG
分布式缓存服务 DCS
多活高可用服务 MAS
事件网格 EG
管理与监管
统一身份认证服务 IAM
消息通知服务 SMN
云监控服务 CES
应用运维管理 AOM
应用性能管理 APM
云日志服务 LTS
云审计服务 CTS
标签管理服务 TMS
配置审计 Config
应用身份管理服务 OneAccess
资源访问管理 RAM
组织 Organizations
资源编排服务 RFS
优化顾问 OA
IAM 身份中心
云运维中心 COC
资源治理中心 RGC
解决方案
高性能计算 HPC
SAP
混合云灾备
开天工业工作台 MIW
Haydn解决方案工厂
数字化诊断治理专家服务
云生态
云商店
合作伙伴中心
华为云开发者学堂
华为云慧通差旅
开发与运维
软件开发生产线 CodeArts
需求管理 CodeArts Req
流水线 CodeArts Pipeline
代码检查 CodeArts Check
编译构建 CodeArts Build
部署 CodeArts Deploy
测试计划 CodeArts TestPlan
制品仓库 CodeArts Artifact
移动应用测试 MobileAPPTest
CodeArts IDE Online
开源镜像站 Mirrors
性能测试 CodeArts PerfTest
应用管理与运维平台 ServiceStage
云应用引擎 CAE
开源治理服务 CodeArts Governance
华为云Astro轻应用
CodeArts IDE
Astro工作流 AstroFlow
代码托管 CodeArts Repo
漏洞管理服务 CodeArts Inspector
联接 CodeArtsLink
软件建模 CodeArts Modeling
Astro企业应用 AstroPro
CodeArts盘古助手
华为云Astro大屏应用
计算
弹性云服务器 ECS
Flexus云服务
裸金属服务器 BMS
云手机服务器 CPH
专属主机 DeH
弹性伸缩 AS
镜像服务 IMS
函数工作流 FunctionGraph
云耀云服务器(旧版)
VR云渲游平台 CVR
Huawei Cloud EulerOS
云化数据中心 CloudDC
网络
虚拟私有云 VPC
弹性公网IP EIP
弹性负载均衡 ELB
NAT网关 NAT
云专线 DC
虚拟专用网络 VPN
云连接 CC
VPC终端节点 VPCEP
企业路由器 ER
企业交换机 ESW
全球加速 GA
企业连接 EC
云原生应用网络 ANC
CDN与智能边缘
内容分发网络 CDN
智能边缘云 IEC
智能边缘平台 IEF
CloudPond云服务
安全与合规
安全技术与应用
Web应用防火墙 WAF
企业主机安全 HSS
云防火墙 CFW
安全云脑 SecMaster
DDoS防护 AAD
数据加密服务 DEW
数据库安全服务 DBSS
云堡垒机 CBH
数据安全中心 DSC
云证书管理服务 CCM
威胁检测服务 MTD
态势感知 SA
认证测试中心 CTC
边缘安全 EdgeSec
大数据
MapReduce服务 MRS
数据湖探索 DLI
表格存储服务 CloudTable
可信智能计算服务 TICS
推荐系统 RES
云搜索服务 CSS
数据可视化 DLV
数据接入服务 DIS
数据仓库服务 GaussDB(DWS)
数据治理中心 DataArts Studio
湖仓构建 LakeFormation
智能数据洞察 DataArts Insight
应用中间件
微服务引擎 CSE
分布式消息服务Kafka版
分布式消息服务RabbitMQ版
分布式消息服务RocketMQ版
API网关 APIG
分布式缓存服务 DCS
多活高可用服务 MAS
事件网格 EG
开天aPaaS
应用平台 AppStage
开天企业工作台 MSSE
开天集成工作台 MSSI
API中心 API Hub
云消息服务 KooMessage
交换数据空间 EDS
云地图服务 KooMap
云手机服务 KooPhone
组织成员账号 OrgID
云空间服务 KooDrive
管理与监管
统一身份认证服务 IAM
消息通知服务 SMN
云监控服务 CES
应用运维管理 AOM
应用性能管理 APM
云日志服务 LTS
云审计服务 CTS
标签管理服务 TMS
配置审计 Config
应用身份管理服务 OneAccess
资源访问管理 RAM
组织 Organizations
资源编排服务 RFS
优化顾问 OA
IAM 身份中心
云运维中心 COC
资源治理中心 RGC
区块链
区块链服务 BCS
数字资产链 DAC
华为云区块链引擎服务 HBS
解决方案
高性能计算 HPC
SAP
混合云灾备
开天工业工作台 MIW
Haydn解决方案工厂
数字化诊断治理专家服务
价格
成本优化最佳实践
专属云商业逻辑
云生态
云商店
合作伙伴中心
华为云开发者学堂
华为云慧通差旅
其他
管理控制台
消息中心
产品价格详情
系统权限
客户关联华为云合作伙伴须知
公共问题
宽限期保留期
奖励推广计划
活动
云服务信任体系能力说明
开发与运维
软件开发生产线 CodeArts
需求管理 CodeArts Req
流水线 CodeArts Pipeline
代码检查 CodeArts Check
编译构建 CodeArts Build
部署 CodeArts Deploy
测试计划 CodeArts TestPlan
制品仓库 CodeArts Artifact
移动应用测试 MobileAPPTest
CodeArts IDE Online
开源镜像站 Mirrors
性能测试 CodeArts PerfTest
应用管理与运维平台 ServiceStage
云应用引擎 CAE
开源治理服务 CodeArts Governance
华为云Astro轻应用
CodeArts IDE
Astro工作流 AstroFlow
代码托管 CodeArts Repo
漏洞管理服务 CodeArts Inspector
联接 CodeArtsLink
软件建模 CodeArts Modeling
Astro企业应用 AstroPro
CodeArts盘古助手
华为云Astro大屏应用
存储
对象存储服务 OBS
云硬盘 EVS
云备份 CBR
高性能弹性文件服务 SFS Turbo
弹性文件服务 SFS
存储容灾服务 SDRS
云硬盘备份 VBS
云服务器备份 CSBS
数据快递服务 DES
云存储网关 CSG
专属分布式存储服务 DSS
数据工坊 DWR
地图数据 MapDS
键值存储服务 KVS
容器
云容器引擎 CCE
云容器实例 CCI
容器镜像服务 SWR
云原生服务中心 OSC
应用服务网格 ASM
华为云UCS
数据库
云数据库 RDS
数据复制服务 DRS
文档数据库服务 DDS
分布式数据库中间件 DDM
云数据库 GaussDB
云数据库 GeminiDB
数据管理服务 DAS
数据库和应用迁移 UGO
云数据库 TaurusDB
人工智能
AI开发平台ModelArts
华为HiLens
图引擎服务 GES
图像识别 Image
文字识别 OCR
自然语言处理 NLP
内容审核 Moderation
图像搜索 ImageSearch
医疗智能体 EIHealth
企业级AI应用开发专业套件 ModelArts Pro
人脸识别服务 FRS
对话机器人服务 CBS
语音交互服务 SIS
人证核身服务 IVS
视频智能分析服务 VIAS
城市智能体
自动驾驶云服务 Octopus
盘古大模型 PanguLargeModels
IoT物联网
设备接入 IoTDA
全球SIM联接 GSL
IoT数据分析 IoTA
路网数字化服务 DRIS
IoT边缘 IoTEdge
设备发放 IoTDP
企业应用
域名注册服务 Domains
云解析服务 DNS
企业门户 EWP
ICP备案
商标注册
华为云WeLink
华为云会议 Meeting
隐私保护通话 PrivateNumber
语音通话 VoiceCall
消息&短信 MSGSMS
云管理网络
SD-WAN 云服务
边缘数据中心管理 EDCM
云桌面 Workspace
应用与数据集成平台 ROMA Connect
ROMA资产中心 ROMA Exchange
API全生命周期管理 ROMA API
政企自服务管理 ESM
视频
实时音视频 SparkRTC
视频直播 Live
视频点播 VOD
媒体处理 MPC
视频接入服务 VIS
数字内容生产线 MetaStudio
迁移
主机迁移服务 SMS
对象存储迁移服务 OMS
云数据迁移 CDM
迁移中心 MGC
专属云
专属计算集群 DCC
开发者工具
SDK开发指南
API签名指南
DevStar
华为云命令行工具服务 KooCLI
Huawei Cloud Toolkit
CodeArts API
云化转型
云架构中心
云采用框架
用户服务
账号中心
费用中心
成本中心
资源中心
企业管理
工单管理
客户运营能力
国际站常见问题
支持计划
专业服务
合作伙伴支持计划
我的凭证
华为云公共事业服务云平台
工业软件
工业数字模型驱动引擎
硬件开发工具链平台云服务
工业数据转换引擎云服务
本文导读

展开导读

PG_THREAD_WAIT_STATUS

更新时间:2025-01-26 GMT+08:00
分享

通过PG_THREAD_WAIT_STATUS视图可以检测当前实例中工作线程(backend thread)以及辅助线程(auxiliary thread)的阻塞等待情况。具体字段信息如表1所示。

表1 PG_THREAD_WAIT_STATUS字段

名称

类型

描述

node_name

text

当前节点的名称。

db_name

text

数据库名称。

thread_name

text

线程名称。

query_id

bigint

查询id,对应debug_query_id。

tid

bigint

当前线程的线程号。

sessionid

bigint

当前会话id。

lwtid

integer

当前线程的轻量级线程号。

psessionid

bigint

父会话ID。

tlevel

integer

streaming线程的层级。

smpid

integer

并行线程的id。

wait_status

text

当前线程的等待状态。等待状态的详细信息请参见表2

wait_event

text

如果wait_status是acquire lock、acquire lwlock、wait io三种类型,此列描述具体的锁、轻量级锁、I/O的信息。否则是空。

locktag

text

当前线程正等待获取的锁的信息。

lockmode

text

当前线程正等待获取的锁的模式。包含表级锁、行级锁、页级锁下的各模式。

block_sessionid

bigint

阻塞当前线程获取锁的会话标识。

global_sessionid

text

全局会话id。

wait_status列的等待状态如表2所示。

表2 等待状态列表

wait_status值

含义

none

没在等任意事件。

acquire lock

等待加锁,要么加锁成功,要么加锁等待超时。

acquire lwlock

等待获取轻量级锁。

wait io

等待I/O完成。

wait cmd

等待完成读取网络通信包。

wait pooler get conn

等待pooler完成获取连接。

wait pooler abort conn

等待pooler完成终止连接。

wait pooler clean conn

等待pooler完成清理连接。

pooler create conn: [nodename], total N

等待pooler建立连接,当前正在与nodename指定节点建立连接,且仍有N个连接等待建立。

get conn

获取到其他节点的连接。

set cmd: [nodename]

在连接上执行SET/RESET/TRANSACTION BLOCK LEVEL PARA SET/SESSION LEVEL PARA SET,当前正在nodename指定节点上执行。

cancel query

取消某连接上正在执行的SQL语句。

stop query

停止某连接上正在执行的查询。

wait node: [nodename](plevel), total N, [phase]

等待接收与某节点的连接上的数据,当前正在等待nodename节点plevel线程的数据,且仍有N个连接的数据待返回。如果状态包含phase信息,则可能的阶段状态有:
  • begin:表示处于事务开始阶段。
  • commit:表示处于事务提交阶段。
  • rollback:表示处于事务回滚阶段。

wait transaction sync: xid

等待xid指定事务同步。

wait wal sync

等待特定LSN的wal log完成到备机的同步。

wait data sync

等待完成数据页到备机的同步。

wait data sync queue

等待把行存的数据页放入同步队列。

flush data: [nodename](plevel), [phase]

等待向网络中nodename指定节点的plevel对应线程发送数据。如果状态包含phase信息,则可能的阶段状态为wait quota,即当前通信流正在等待quota值。

stream get conn: [nodename], total N

初始化stream flow时,等待与nodename节点的consumer对象建立连接,且当前有N个待建连对象。

wait producer ready: [nodename](plevel), total N

初始化stream flow时,等待每个producer都准备好,当前正在等待nodename节点plevel对应线程的producer对象准备好,且仍有N个producer对象处于等待状态。

synchronize quit

stream plan结束时,等待stream线程组内的线程统一退出。

nodegroup destroy

stream plan结束时,等待销毁stream node group。

wait active statement

等待作业执行,正在资源负载管控中。

gtm connect

等待与GTM建连。

gtm get gxid

等待从GTM获取事务xid。

gtm get snapshot

等待从GTM获取事务快照snapshot。

gtm begin trans

等待GTM开始事务。

gtm commit trans

等待GTM提交事务。

gtm rollback trans

等待GTM执行事务回滚。

gtm start prepare trans

等待GTM开始两阶段事务的prepare阶段。

gtm prepare trans

等待GTM完成两阶段事务的prepare阶段。

gtm open sequence

等待GTM打开sequence。

gtm close sequence

等待GTM关闭sequence。

gtm create sequence

等待GTM创建sequence。

gtm alter sequence

等待GTM修改sequence。

gtm get sequence val

等待从GTM获取sequence的下一个值。

gtm set sequence val

等待GTM设置sequence的值。

gtm drop sequence

等待GTM删除sequence。

gtm rename sequence

等待GTM重命名sequence。

analyze: [relname], [phase]

当前正在对表relname执行analyze。如果状态包含phase信息,则为autovacuum,表示是数据库自动开启AutoVacuum线程执行的analyze分析操作。

vacuum: [relname], [phase]

当前正在对表relname执行vacuum。如果状态包含phase信息,则为autovacuum,表示是数据库自动开启AutoVacuum线程执行的vacuum清理操作。

vacuum full: [relname]

当前正在对表relname执行vacuum full清理。

create index

当前正在创建索引。

HashJoin - [ build hash | write file ]

当前是HashJoin算子,主要关注耗时的执行阶段。
  • build hash:表示当前HashJoin算子正在建立哈希表。
  • write file:表示当前HashJoin算子正在将数据写入磁盘。

HashAgg - [ build hash | write file ]

当前是HashAgg算子,主要关注耗时的执行阶段。
  • build hash:表示当前HashAgg算子正在建立哈希表。
  • write file:表示当前HashAgg算子正在将数据写入磁盘。

HashSetop - [build hash | write file ]

当前是HashSetop算子,主要关注耗时的执行阶段。
  • build hash:表示当前HashSetop算子正在建立哈希表。
  • write file:表示当前HashSetop算子正在将数据写入磁盘。

Sort | Sort - [fetch tuple | write file]

当前是Sort算子做排序,fetch tuple表示Sort算子正在获取tuple,write file表示Sort算子正在将数据写入磁盘。

Material | Material - write file

当前是Material算子,write file表示Material算子正在将数据写入磁盘。

standby read recovery conflict

备机只读与日志回放产生冲突。

standby get snapshot

备机只读获取快照。

prune table

等待堆表清理历史删除数据。

prune index

等待索引清理历史删除数据。

vacuum gpi

等待gpi索引清理历史删除数据。

gtm reset xmin

等待gtm重置xmin。

gtm get xmin

等待从gtm获取xmin。

gtm get csn

等待从gtm获取csn。

gtm start preprare trans

等待gtm启动二阶段事务。

gtm rename sequence

等待gtm重命名sequence。

wait reserve td

等待分配ustore事务槽。

wait td rollback

等待ustore事务槽回滚。

wait available td

等待ustore可用的事务槽。

wait transaction rollback

等待事务回滚。

gtm set disaster cluster

等待在gtm设置容灾集群信息。

gtm get disaster cluster

等待从gtm获取容灾集群信息。

gtm del disaster cluster

等待在gtm删除容灾集群信息。

gtm set consistency point

等待在gtm设置一致性点。

wait sync bgworkers

等待并行创建索引的子线程完成本地扫描和排序。

wait gs_sleep

等待服务器线程延迟时间。

wait vacuum delay

等待vacuum延迟时间。

wait seq scan

seq scan执行时间。

wait index scan

index scan执行时间。

wait checkpoint start

checkpoint开始阶段时间。

wait checkpoint done

checkpoint结束阶段时间。

wait xact start command

xact开始时间。

wait xact commit command

xact提交时间。

wait io control

等待作业执行,正在I/O管控中。

security audit write pipe

等待将审计日志写入管道。

当wait_status为acquire lwlock、acquire lock或wait io时,表示有等待事件。正在等待获取wait_event列对应类型的轻量级锁、事务锁或者正在进行I/O操作。

其中,wait_status值为acquire lwlock(轻量级锁)时对应的wait_event等待事件类型与描述信息如表3所示。(wait_event为extension时,表示此时的轻量级锁是动态分配的锁,未被监控。)

表3 轻量级锁等待事件列表

wait_event类型

类型描述

ShmemIndexLock

用于保护共享内存中的主索引哈希表。

OidGenLock

用于避免不同线程产生相同的OID。

XidGenLock

用于避免两个事务获得相同的xid。

ProcArrayLock

用于避免并发访问或修改ProcArray共享数组。

SInvalReadLock

用于避免与清理失效消息并发执行。

SInvalWriteLock

用于避免与其它写失效消息、清理失效消息并发执行。

WALInsertLock

用于避免与其它WAL插入操作并发执行。

WALWriteLock

用于避免并发WAL写盘。

ControlFileLock

用于避免pg_control文件的读写并发、写写并发。

CheckpointLock

用于避免多个checkpoint并发执行。

CLogControlLock

用于避免并发访问或者修改Clog控制数据结构。

SubtransControlLock

用于避免并发访问或者修改子事务控制数据结构。

MultiXactGenLock

用于串行分配唯一MultiXact id。

MultiXactOffsetControlLock

用于避免对pg_multixact/offset的写写并发和读写并发。

MultiXactMemberControlLock

用于避免对pg_multixact/members的写写并发和读写并发。

RelCacheInitLock

用于失效消息场景对init文件进行操作时加锁。

CheckpointerCommLock

用于向checkpointer发起文件刷盘请求场景,需要串行的向请求队列插入请求结构。

TwoPhaseStateLock

用于避免并发访问或者修改两阶段信息共享数组。

TablespaceCreateLock

用于确定tablespace是否已经存在。

BtreeVacuumLock

用于防止vacuum清理B-tree中还在使用的页面。

AlterPortLock

用于保护CN更改注册端口号的操作。

AutovacuumLock

用于串行化访问autovacuum worker数组。

AutovacuumScheduleLock

用于串行化分配需要vacuum的table。

AutoanalyzeLock

用于获取和释放允许执行Autoanalyze的任务资源。

SyncScanLock

用于确定heap扫描时某个relfilenode的起始位置。

NodeTableLock

用于保护存放CNDN节点信息的共享结构。

PoolerLock

用于保证两个线程不会同时从连接池里取到相同的连接。

RelationMappingLock

用于等待更新系统表到存储位置之间映射的文件。

Async Ctl

用于保护Async buffer。

AsyncCtlLock

用于避免并发访问或者修改共享通知状态。

AsyncQueueLock

用于避免并发访问或者修改共享通知信息队列。

SerializableXactHashLock

用于避免对于可串行事务共享结构的写写并发和读写并发。

SerializableFinishedListLock

用于避免对于已完成可串行事务共享链表的写写并发和读写并发。

SerializablePredicateLockListLock

用于保护对于可串行事务持有的锁链表。

OldSerXidLock

用于保护记录冲突可串行事务的结构。

FileStatLock

用于保护存储统计文件信息的数据结构。

SyncRepLock

用于在主备复制时保护xlog同步信息。

DataSyncRepLock

用于在主备复制时保护数据页同步信息。

MetaCacheSweepLock

用于元数据循环淘汰。

ExtensionConnectorLibLock

用于初始化ODBC连接场景,在加载与卸载特定动态库时进行加锁。

SearchServerLibLock

用于GPU加速场景初始化加载特定动态库时,对读文件操作进行加锁。

LsnXlogChkFileLock

用于串行更新特定结构中记录的主备机的xlog flush位置点。

GTMHostInfoLock

用于避免并发访问或者修改GTM主机信息。

ReplicationSlotAllocationLock

用于主备复制时保护主机端的流复制槽的分配。

ReplicationSlotControlLock

用于主备复制时避免并发更新流复制槽状态。

ResourcePoolHashLock

用于避免并发访问或者修改资源池哈希表。

OBSGetPathLock

用于避免对obs路径的写写并发和读写并发。

JobShmemLock

用于MPP兼容ORACLE定时任务功能中保护定时读取的全局变量。

OBSRuntimeLock

用于获取环境变量,如GAUSSHOME。

LLVMDumpIRLock

用于导出动态生成函数所对应的汇编语言。

LLVMParseIRLock

用于在查询开始处从IR文件中编译并解析已写好的IR函数。

CriticalCacheBuildLock

用于从共享或者本地缓存初始化文件中加载cache的场景。

WaitCountHashLock

用于保护用户语句计数功能场景中的共享结构。

BufMappingLock

用于保护对共享缓冲映射表的操作。

LockMgrLock

用于保护常规锁结构信息。

PredicateLockMgrLock

用于保护可串行事务锁结构信息。

OperatorRealTLock

用于避免并发访问或者修改记录算子级实时数据的全局结构。

OperatorHistLock

用于避免并发访问或者修改记录算子级历史数据的全局结构。

SessionRealTLock

用于避免并发访问或者修改记录query级实时数据的全局结构。

SessionHistLock

用于避免并发访问或者修改记录query级历史数据的全局结构。

CacheSlotMappingLock

用于保护CU Cache全局信息。

BarrierLock

用于保证当前只有一个线程在创建Barrier。

GPCCommitLock

用于保护全局Plan Cache hash表的添加操作。

GPCClearLock

用于保护全局Plan Cache hash表的清除操作。

GPCTimelineLock

用于保护全局Plan Cache hash表检查Timeline的操作。

GPCMappingLock

用于全局Plan Cache缓存管理。

GPCPrepareMappingLock

用于全局Plan Cache缓存管理。

GPRCMappingLock

用于管理自治事务全局缓存hash表的访问和修改操作。

BufFreelistLock

用于保证共享缓冲区空闲列表操作的原子性。

AddinShmemInitLock

保护共享内存对象的初始化。

wait active statement

等待作业执行,正在资源负载管控中。

wait memory

等待内存获取。

DnUsedSpaceHashLock

用于更新会话对应的空间使用信息。

InstanceRealTLock

用于保护共享实例统计信息hash表的更新操作。

IOStatLock

用于资源管理IO统计信息哈希表并发维护操作。

PldebugLock

用于存储过程调试并发维护操作。

StartBlockMappingLock

用于globalstat从pgstat获取startblockarray等信息。

GlobalSeqLock

用于全局sequence序列管理。

MatviewSeqnoLock

用于物化视图缓存管理。

DataFileIdCacheLock

管理共享内存中存储数据文件描述符的哈希表的并发访存。

GTMHostInfoLock

保护共享GTM主机信息的并发访存。

TwoPhaseStatePartLock

保护(各个分区)两阶段事务状态信息。

WALBufMappingLock

保护共享内中各个wal缓存页面与lsn偏移的映射关系。

UndoZoneLock

保护undozone的并发访存。

RollbackReqHashLock

管理共享内存中存储回滚请求信息的哈希表的并发访存。

UHeapStatLock

保护ustore统计信息的并发访存。

WALWritePaxosLock

保护向paxos复制组件写wal日志的并发顺序。

SyncPaxosLock

保护paxos同步队列的并发访存。

BackgroundWorkerLock

保护background worker的并发顺序。

HadrSwitchoverLock

保护容灾切换的并发顺序。

HashUidLock

保护uid分配的并发顺序。

ParallelDecodeLock

保护并行解码的并发顺序。

XLogMaxCSNLock

保护容灾模式下本地最大可恢复CSN信息。

DisasterCacheLock

保护共享内存中容灾信息缓存的并发访存。

MaxCSNArrayLock

保护共享内存中各个分片备机CSN恢复进度信息。

RepairBadBlockStatHashLock

保护共享内存中损坏页面哈希表的并发访存。

DropArchiveSlotLock

保护删除归档槽信息的并发顺序。

ProcXactMappingLock

保护事务号-线程信息映射哈希表的并发访存。

UndoPerZoneLock

保护每个undozone内信息的并发访存。

UndoSpaceLock

保护undospace的并发访存。

SnapshotBlockLock

控制快照备份与页面刷盘的并发顺序。

DWSingleFlushFirstLock

控制非段页式单页面双写文件的并发顺序。

DWSingleFlushSecondLock

控制段页式单页面双写文件的并发顺序

DWSingleFlushSecondBufTagLock

控制段页式单页面双写文件的元信息并发访存

RestartPointQueueLock

控制备机restart Point数组的并发访存。

UnlinkRelHashTblLock

保护共享内存中待删除文件哈希表的并发访存。

UnlinkRelForkHashTblLock

保护共享内存中待删除文件fork哈希表的并发访存。

WALFlushWait

保护日志刷盘的并发顺序。

WALConsensusWait

保护日志达成一致才进行事务提交或日志回放操作。

WALBufferInitWait

保护wal共享内存页面的初始化和刷盘顺序。

WALInitSegment

保护wal日志段文件的初始化顺序。

SegmentHeadPartitionLock

保护段页式segment头部元信息的分区锁。

PgwrSyncQueueLock

保护待刷盘文件队列的并发访存。

BarrierHashTblLock

保护共享内存中barrier列表信息的并发访存。

PageRepairHashTblLock

保护页面修复哈希表的并发访存。

FileRepairHashTblLock

保护文件修复哈希表的并发访存。

BadBlockStatHashLock

保护共享损坏页面统计哈希表的并发访存。

BufferIOLock

保护共享缓冲区单个页面加载或淘汰的IO并发。

BufferContentLock

保护共享缓冲区单个页面的读写并发。

CUSlotListLock

保护共享CU槽位链表的并发访存。

DataCacheLock

保护共享CU只读缓存的并发访存。

MetaCacheLock

保护共享cu meta缓存的并发访存。

CBMParseXlogLock

控制cbm文件的并发访存。

CLogBufMappingLock

控制共享clog页面映射的并发访存。

CLOG Ctl

控制各个clog分区信息的并发访存。

CSNBufMappingLock

控制共享csnlog页面映射的并发访存。

CSNLOG Ctl

控制各个csnlog分区信息的并发访存。

DelayDDLLock

控制删除类ddl和延迟备份功能的并发顺序。

DoubleWriteLock

控制双写模块的并发顺序。

DfsConnectorCacheLock

控制dfs连接缓存的并发访存。

DfsUserLoginLock

控制dfs用户登录的并发顺序。

DfsSpaceCacheLock

控制dfs空间管理缓存的并发顺序。

PGPROCLock

保护全局共享线程状态数组的并发访存。

RelfilenodeReuseLock

控制文件名复用的并发顺序。

ReplicationSlotLock

保护逻辑复制槽信息的并发访存。

LogicalReplicationSlotPersistentDataLock

控制逻辑复制槽持久化的并发顺序。

RowPageReplicationLock

控制行存页面复制的并发顺序。

MultiXactOffset Ctl

保护multixact offset文件信息的并发访存。

MultiXactMember Ctl

保护multixact member文件信息的并发访存。

OldSerXid SLRU Ctl

保护oldser事务号缓存信息的并发访存。

FullBuildXlogCopyStartPtrLock

控制全量build起点位置的并发访存。

RcvWriteLock

控制wal receiver writer的并发顺序。

XlogRemoveSegLock

控制最新删除wal文件信息的并发访存。

CsnMinLock

控制csn min信息的并发访存。

HypoIndexLock

虚拟索引创建、删除、重置等动作中使用的轻量级锁。

XGBoostLibLock

DB4AI特性调用xgboost库时启用的锁。

InstrUserLockId

对保护用户登录或者退出登录哈希表并发修改加锁。

GsStackLock

控制gs_stack函数不被并发调用。

InstrStmtTrackCtlLock

在动态开启全量SQL时, 保护哈希表的并发访存。

CaptureViewFileHashLock

开启性能视图采集时,保护哈希表的并发访存。

UniqueSqlEvictLock

开启Unique SQL回收时,保护哈希表的并发访存。

ASPMappingLock

用于管理ASP的hash表的并发访存。

AuditIndexFileLock

控制审计日志index文件的并发读写。

SQLAdvisorLock

用于管理分布列推荐中hash表的并发访存。

BlockchainVersionLock

账本数据库中控制全局区块号的并发读写。

GlobalPrevHashLock

账本数据库中控制全局校验哈希的并发读写。

LWTRANCHE_ACCOUNT_TABLE

控制账户锁定状态hash表的并发读写。

当wait_status值为wait io时对应的wait_event等待事件类型与描述信息如表4所示。

表4 I/O等待事件列表

wait_event类型

类型描述

BufFileRead

从临时文件中读取数据到指定buffer。

BufFileWrite

向临时文件中写入指定buffer中的内容。

ControlFileRead

读取pg_control文件。主要在数据库启动、执行checkpoint和主备校验过程中发生。

ControlFileSync

将pg_control文件持久化到磁盘。数据库初始化时发生。

ControlFileSyncUpdate

将pg_control文件持久化到磁盘。主要在数据库启动、执行checkpoint和主备校验过程中发生。

ControlFileWrite

写入pg_control文件。数据库初始化时发生。

ControlFileWriteUpdate

更新pg_control文件。主要在数据库启动、执行checkpoint和主备校验过程中发生。

CopyFileRead

copy文件时读取文件内容。

CopyFileWrite

copy文件时写入文件内容。

DataFileExtend

扩展文件时向文件写入内容。

DataFileFlush

将表数据文件持久化到磁盘

DataFileImmediateSync

将表数据文件立即持久化到磁盘。

DataFilePrefetch

异步读取表数据文件。

DataFileRead

同步读取表数据文件。

DataFileSync

将表数据文件的修改持久化到磁盘。

DataFileTruncate

表数据文件truncate。

DataFileWrite

向表数据文件写入内容。

LockFileAddToDataDirRead

读取"postmaster.pid"文件。

LockFileAddToDataDirSync

将"postmaster.pid"内容持久化到磁盘。

LockFileAddToDataDirWrite

将pid信息写到"postmaster.pid"文件。

LockFileCreateRead

读取LockFile文件"%s.lock"。

LockFileCreateSync

将LockFile文件"%s.lock"内容持久化到磁盘。

LockFileCreateWRITE

将pid信息写到LockFile文件"%s.lock"。

NgroupDestoryLock

对于保护nodegroup哈希表并发修改加锁。

NGroupMappingLock

对于保护nodegroup哈希表的单个分桶并发修改加锁。

RelationMapRead

读取系统表到存储位置之间的映射文件

RelationMapSync

将系统表到存储位置之间的映射文件持久化到磁盘。

RelationMapWrite

写入系统表到存储位置之间的映射文件。

ReplicationSlotRead

读取流复制槽文件。重新启动时发生。

ReplicationSlotRestoreSync

将流复制槽文件持久化到磁盘。重新启动时发生。

ReplicationSlotSync

checkpoint时将流复制槽临时文件持久化到磁盘。

ReplicationSlotWrite

checkpoint时写流复制槽临时文件。

SLRUFlushSync

将pg_clog、pg_subtrans和pg_multixact文件持久化到磁盘。主要在执行checkpoint和数据库停机时发生。

SLRURead

读取pg_clog、pg_subtrans和pg_multixact文件。

SLRUSync

将脏页写入文件pg_clog、pg_subtrans和pg_multixact并持久化到磁盘。主要在执行checkpoint和数据库停机时发生。

SLRUWrite

写入pg_clog、pg_subtrans和pg_multixact文件。

TimelineHistoryRead

读取timeline history文件。在数据库启动时发生。

TimelineHistorySync

将timeline history文件持久化到磁盘。在数据库启动时发生。

TimelineHistoryWrite

写入timeline history文件。在数据库启动时发生。

TwophaseFileRead

读取pg_twophase文件。在两阶段事务提交、两阶段事务恢复时发生。

TwophaseFileSync

将pg_twophase文件持久化到磁盘。在两阶段事务提交、两阶段事务恢复时发生。

TwophaseFileWrite

写入pg_twophase文件。在两阶段事务提交、两阶段事务恢复时发生。

WALBootstrapSync

将初始化的WAL文件持久化到磁盘。在数据库初始化发生。

WALBootstrapWrite

写入初始化的WAL文件。在数据库初始化发生。

WALCopyRead

读取已存在的WAL文件并进行复制时产生的读操作。在执行归档恢复完后发生。

WALCopySync

将复制的WAL文件持久化到磁盘。在执行归档恢复完后发生。

WALCopyWrite

读取已存在WAL文件并进行复制时产生的写操作。在执行归档恢复完后发生。

WALInitSync

将新初始化的WAL文件持久化磁盘。在日志回收或写日志时发生。

WALInitWrite

将新创建的WAL文件初始化为0。在日志回收或写日志时发生。

WALRead

从xlog日志读取数据。两阶段文件redo相关的操作产生。

WALSyncMethodAssign

将当前打开的所有WAL文件持久化到磁盘。

WALWrite

写入WAL文件。

DoubleWriteFileRead

等待读取双写文件。

DoubleWriteFileSync

等待刷盘双写文件。

DoubleWriteFileWrite

等待写入双写文件。

PredoProcessPending

等待并行回放处理剩余记录。

PredoApply

等待并行回放应用回放。

DisableConnectFileRead

等待读取锁分片文件。

DisableConnectFileSync

等待刷盘锁分片文件。

DisableConnectFileWrite

等待写入锁分片文件

BufHashTableSearch

共享缓冲区hash表搜索(可能会触发页面淘汰)。

buffer_strategy_get

策略化缓冲区页面获取(可能会触发页面淘汰)。

UndoFileExtend

undo文件扩展。

UndoFilePrefetch

undo文件预取。

UndoFileRead

undo文件读取。

UndoFileWrite

undo文件写。

UndoFileSync

undo文件刷盘。

UndoFileUnlink

undo文件删除。

UndoMetaSync

undo元数据文件刷盘。

WALBufferAccess

WAL Buffer访问(出于性能考虑,内核代码里只统计访问次数,未统计其访问耗时)。

WALBufferFull

WAL Buffer满时,写wal文件相关的处理。

DWSingleFlushGetPos

单页面双写文件查找可用位置。

DWSingleFlushWrite

单页面双写文件刷盘。

CkptWaitPageWriterFlush

执行全量checkpoint时等待刷页。

CkptWaitPageWriterSync

checkpoint打点前等待有修改的文件同步到磁盘。

CkptWaitCommitTransactionFinish

checkpoint打点前等待所有已经提交的事务提交完毕。

MPFL_INIT

初始化max_page_flush_lsn。

MPFL_READ

读取max_page_flush_lsn。

MPFL_WRITE

写max_page_flush_lsn。

OBSList

遍历OBS目录。

OBSRead

读取OBS对象。

OBSWrite

写入OBS对象。

LOGCTRL_SLEEP

等待备机回放追赶。

ShareStorageWalRead

共享盘读取日志文件。

ShareStorageWalWrite

共享盘写入日志文件。

ShareStorageCtlInfoRead

共享盘读取控制信息。

ShareStorageCtlInfoWrite

共享盘写入控制信息。

SegFileExtend

段页式文件扩展。

SegReadDisk

段页式文件读取。

SegWriteDisk

段页式文件写入。

SegSync

段页式文件刷盘。

SegFileShrink

段页式文件收缩。

当wait_status值为acquire lock(事务锁)时对应的wait_event等待事件类型与描述信息如表5所示。

表5 事务锁等待事件列表

wait_event类型

类型描述

relation

对表加锁。

extend

对表扩展空间时加锁。

partition

对分区表加锁。

partition_seq

对分区表的分区加锁。

page

对表页面加锁。

tuple

对页面上的tuple加锁。

transactionid

对事务id加锁。

virtualxid

对虚拟事务id加锁。

object

加对象锁。

userlock

加用户锁。

advisory

加advisory锁。

filenode

对文件名加锁。

subtransactionid

对子事务号加锁。

tuple_uid

对元组头部的uid隐藏字段加锁。

提示

您即将访问非华为云网站,请注意账号财产安全

文档反馈

文档反馈

意见反馈

0/500

标记内容

同时提交标记内容