28.2 统计收集员
28.2.2. 查看统计信息
表 28.1中列出了一些预定义视图 可以用来显示系统的当前状态。 表 28.2中列出了另一些视图可以 显示统计收集的结果。你也可以使用底层统计函数(在 第 28.2.3 节中讨论)来建立自定义的视图。
在使用统计信息监控收集到的数据时,你必须了解这些信息并非是实时更新的。每个独立的服务器进程只在进入闲置状态之前才向收集器传送新的统计计数;因此正在进行的查询或事务并不影响显示出来的总数。同样,收集器本身也最多每PGSTAT_STAT_INTERVAL
毫秒(缺省为 500ms,除非在编译服务器的时候修改过)发送一 次新的报告。因此显示的信息总是落后于实际活动。但是由track_activities
收集的当前查询信息总是最新的。
另一个重点是当一个服务器进程被要求显示任何这些统计信息时,它首先取得收集器进程最近发出的报告并且接着为所有统计视图和函数使用这个快照,直到它的当前事务的结尾。因此只要你继续当前事务,统计数据将会一直显示静态信息。相似地,当任何关于所有会话的当前查询的信息在一个事务中第一次被请求时,这样的信息将被收集。并且在整个事务期间将显示相同的信息。这是一种特性而非缺陷,因为它允许你在该统计信息上执行多个查询并且关联结果而不用担心那些数字会在你不知情的情况下改变。但是如果你希望用每个查询都看到新结果,要确保在任何事务块之外做那些查询。或者,你可以调用pg_stat_clear_snapshot
(),那将丢弃当前事务的统计快照(如果有)。下一次对统计性信息的使用将导致获取一个新的快照。
一个事务也可以在视图pg_stat_xact_all_tables
、pg_stat_xact_sys_tables
、pg_stat_xact_user_tables
和pg_stat_xact_user_functions
中看到它自己的统计信息(还没有被传送给收集器)。这些数字并不像上面所述的那样行动,相反它们在事务期间持续被更新。
表 28.1. 动态统计视图
视图名称 | 描述 |
---|---|
pg_stat_activity
|
每个服务器进程一行,显示与那个进程的当前活动相关的信息,例如状态和当前查询。详见pg_stat_activity。 |
pg_stat_replication
|
每一个 WAL 发送进程一行,显示有关到该发送进程 连接的后备服务器的复制的统计信息。详见 pg_stat_replication。 |
pg_stat_wal_receiver
|
只有一行,显示来自 WAL 接收器所连接服务器的有关该接收器的统计信息。详见pg_stat_wal_receiver。 |
pg_stat_subscription
|
每个订阅至少一行,显示订阅工作者的相关信息。详细信息,请参阅 pg_stat_subscription。 |
pg_stat_ssl
|
每个连接(常规连接和复制连接)一行, 显示有关在此连接上使用的 SSL 的信息。 详见pg_stat_ssl。 |
pg_stat_progress_vacuum
|
每个运行VACUUM 的后端(包括 autovacuum 工作者进程)一行,
显示当前的进度。参阅第 28.4.1 节。
|
表 28.2. 已收集统计信息的视图
视图名称 | 描述 |
---|---|
pg_stat_archiver
|
只有一行,显示有关 WAL 归档进程活动的统计信息。详见pg_stat_archiver。 |
pg_stat_bgwriter
|
只有一行,显示有关后台写进程的活动的统计信息。详见pg_stat_bgwriter。 |
pg_stat_database
|
每个数据库一行,显示数据库范围的统计信息。详见pg_stat_database。 |
pg_stat_database_conflicts
|
每个数据库一行,显示数据库范围的统计信息, 这些信息的内容是关于由于与后备服务器的恢复过程 发生冲突而被取消的查询。详见 pg_stat_database_conflicts。 |
pg_stat_all_tables
|
当前数据库中每个表一行,显示有关访问指定表的统计信息。详见pg_stat_all_tables。 |
pg_stat_sys_tables
|
和pg_stat_all_tables 一样,但只显示系统表。 |
pg_stat_user_tables
|
和pg_stat_all_tables 一样,但只显示用户表。 |
pg_stat_xact_all_tables
|
和pg_stat_all_tables 相似,但计数动作只在当前事务内发生(还没有被包括在pg_stat_all_tables 和相关视图中)。用于生存和死亡行数量的列以及清理和分析动作在此视图中不出现。 |
pg_stat_xact_sys_tables
|
和pg_stat_xact_all_tables 一样,但只显示系统表。 |
pg_stat_xact_user_tables
|
和pg_stat_xact_all_tables 一样,但只显示用户表。 |
pg_stat_all_indexes
|
当前数据库中的每个索引一行,显示:表OID、索引OID、模式名、表名、索引名、 使用了该索引的索引扫描总数、索引扫描返回的索引记录数、使用该索引的简 单索引扫描抓取的活表(livetable)中数据行数。 当前数据库中的每个索引一行,显示与访问指定索引有关的统计信息。详见pg_stat_all_indexes。 |
pg_stat_sys_indexes
|
和pg_stat_all_indexes 一样,但只显示系统表上的索引。 |
pg_stat_user_indexes
|
和pg_stat_all_indexes 一样,但只显示用户表上的索引。 |
pg_statio_all_tables
|
当前数据库中每个表一行(包括TOAST表),显示:表OID、模式名、表名、 从该表中读取的磁盘块总数、缓冲区命中次数、该表上所有索引的磁盘块读取总数、 该表上所有索引的缓冲区命中总数、在该表的辅助TOAST表(如果存在)上的磁盘块读取总数、 在该表的辅助TOAST表(如果存在)上的缓冲区命中总数、TOAST表的索引的磁盘块读 取总数、TOAST表的索引的缓冲区命中总数。 当前数据库中的每个表一行,显示有关在指定表上 I/O 的统计信息。详见pg_statio_all_tables。 |
pg_statio_sys_tables
|
和pg_statio_all_tables 一样,但只显示系统表。 |
pg_statio_user_tables
|
和pg_statio_all_tables 一样,但只显示用户表。 |
pg_statio_all_indexes
|
当前数据库中每个索引一行,显示:表OID、索引OID、模式名、 表名、索引名、该索引的磁盘块读取总数、该索引的缓冲区命中总数。 当前数据库中的每个索引一行,显示与指定索引上的 I/O 有关的统计信息。详见pg_statio_all_indexes。 |
pg_statio_sys_indexes
|
和pg_statio_all_indexes 一样,但只显示系统表上的索引。 |
pg_statio_user_indexes
|
和pg_statio_all_indexes 一样,但只显示用户表上的索引。 |
pg_statio_all_sequences
|
当前数据库中每个序列对象一行,显示:序列OID、模式名、序列名、序列的磁盘读取总数、序列的缓冲区命中总数。 当前数据库中的每个序列一行,显示与指定序列上的 I/O 有关的统计信息。详见pg_statio_all_sequences。 |
pg_statio_sys_sequences
|
和pg_statio_all_sequences 一样,但只显示系统序列(目前没有定义系统序列,因此这个视图总是为空)。 |
pg_statio_user_sequences
|
和pg_statio_all_sequences 一样,但只显示用户序列。 |
pg_stat_user_functions
|
对于所有跟踪功能,函数的OID,模式,名称,数量 通话总时间,和自我的时间。自我时间是 在函数本身所花费的时间量,总时间包括 它调用函数所花费的时间。时间值以毫秒为单位。 每一个被跟踪的函数一行,显示与执行该函数有关的统计信息。详见pg_stat_user_functions。 |
pg_stat_xact_user_functions
|
和pg_stat_user_functions 相似,但是只统计在当前事务期间的调用(还没有被包括在pg_stat_user_functions 中)。 |
针对每个索引的统计信息对于判断哪个索引正被使用以及它们的效果特别有用。
pg_statio_
系列视图主要用于判断缓冲区的效果。当实际磁盘读取数远小于缓冲区命中时,这个缓冲能满足大部分读请求而无需进行内核调用。但是,这些统计信息并没有给出所有的事情:由于PostgreSQL处理磁盘 I/O 的方式,不在PostgreSQL缓冲区中的数据库仍然驻留在内核的 I/O 缓存中,并且因此可以被再次读取而不需要物理磁盘读取。我们建议希望了解PostgreSQL I/O 行为更多细节的用户将PostgreSQL统计收集器和操作系统中允许观察内核处理 I/O 的工具一起使用。
表 28.3. pg_stat_activity
视图
列 | 类型 | 描述 |
---|---|---|
datid
|
oid
|
这个后端连接到的数据库的OID |
datname
|
name
|
这个后端连接到的数据库的名称 |
pid
|
integer
|
这个后端的进程 ID |
usesysid
|
oid
|
登录到这个后端的用户的 OID |
usename
|
name
|
登录到这个后端的用户的名称 |
application_name
|
text
|
连接到这个后端的应用的名称 |
client_addr
|
inet
|
连接到这个后端的客户端的 IP 地址。如果这个域为空,它表示客户端通过服务器机器上的一个 Unix 套接字连接或者这是一个内部进程(如自动清理)。 |
client_hostname
|
text
|
已连接的客户端的主机名,由client_addr 的反向 DNS 查找报告。这个域将只对 IP 连接非空,并且只有log_hostname被启用时才会非空。
|
client_port
|
integer
|
客户端用以和这个后端通信的 TCP 端口号,如果使用 Unix 套接字则为-1
|
backend_start
|
timestamp with time zone
|
这个进程被启动的时间,对于客户端后端,这是客户端连接到服务器的时间。 |
xact_start
|
timestamp with time zone
|
这个进程的当前事务被启动的时间,如果没有活动事务则为空。如果当前查询是它的第一个事务,这一列等于query_start 。
|
query_start
|
timestamp with time zone
|
当前活动查询被开始的时间,如果state 不是active ,这个域为上一个查询被开始的时间
|
state_change
|
timestamp with time zone
|
state 上一次被改变的时间 |
wait_event_type
|
text
|
后端正在等待的事件类型,如果不存在则为 NULL。可能的值有:
|
wait_event
|
text
|
如果后端当前正在等待,则是等待事件的名称,否则为 NULL。详见表 28.4。 |
state
|
text
|
这个后端的当前总体状态。可能的值是:
|
backend_xid
|
xid
|
这个后端的顶层事务标识符(如果存在)。 |
backend_xmin
|
xid
|
当前后端的xmin 范围。 |
query
|
text
|
这个后端最近查询的文本。如果state 为active ,这个域显示当前正在执行的查询。在所有其他状态下,它显示上一个被执行的查询。
默认情况下,查询文本被截断为1024个字符;可以通过参数
track_activity_query_size更改此值。
|
backend_type
|
text
|
当前后端的类型。可能的类型有
autovacuum launcher 、autovacuum worker 、
background worker 、background writer 、
client backend 、checkpointer 、
startup 、walreceiver 、
walsender 和walwriter 。
|
pg_stat_activity
视图将为每一个服务器进程有一行,显示与该进程的当前活动相关的信息。
注意
wait_event
和state
列是独立的。如果一个后端处于active
状态,它可能是也可能不是某个事件上的waiting
。如果状态是active
并且wait_event
为非空,它意味着一个查询正在被执行,但是它被阻塞在系统中某处。
表 28.4. wait_event
描述
等待事件类型 | 等待事件名称 | 描述 |
---|---|---|
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
|
正等待更新postgresql.auto.conf 文件。 |
|
ReplicationSlotAllocationLock
|
正等待分配或者释放一个复制槽。 | |
ReplicationSlotControlLock
|
正等待读取或者更新复制槽状态。 | |
CommitTsControlLock
|
正等待读取或者更新事务提交时间戳。 | |
CommitTsLock
|
正等待读取或者更新事务时间戳的最新设置值。 | |
ReplicationOriginLock
|
正等待设置、删除或者使用复制源头。 | |
MultiXactTruncationLock
|
正等待读取或者阶段多事务信息。 | |
OldSnapshotTimeMapLock
|
正等待读取或者更新旧的快照控制信息。 | |
BackendRandomLock
|
等待生成一个随机数。 | |
LogicalRepWorkerLock
|
等待逻辑复制工作者完成操作。 | |
CLogTruncationLock
|
等待截断预写日志或等待预写日志截断完成。 | |
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
|
正等待增加或者检查谓词锁信息。 | |
parallel_query_dsa
|
等待并行查询动态共享内存分配锁定。 | |
tbm
|
等待TBM共享迭代器锁定。 | |
Lock
|
relation
|
正等待获得一个关系上的锁。 |
extend
|
正等待扩展一个关系。 | |
page
|
正等待获得一个关系上的页面的锁。 | |
tuple
|
正等待获得一个元组上的锁。 | |
transactionid
|
正等待一个事务结束。 | |
virtualxid
|
正等待获得一个虚拟 xid 锁。 | |
speculative token
|
正等待获取一个 speculative insertion lock。 | |
object
|
正等待获得一个非关系数据库对象上的锁。 | |
userlock
|
正等待获得一个用户锁。 | |
advisory
|
正等待获得一个咨询用户锁。 | |
BufferPin
|
BufferPin
|
正等待在一个缓冲区上加 pin。 |
Activity
|
ArchiverMain
|
在归档进程的主循环中等待。 |
AutoVacuumMain
|
在自动清理加载进程的主循环中等待。 | |
BgWriterHibernate
|
在后台写入进程中等待,蛰伏。 | |
BgWriterMain
|
在后台写入进程后台工作的主循环中等待。 | |
CheckpointerMain
|
在检查点进程的主循环中等待。 | |
LogicalLauncherMain
|
在逻辑启动进程的主循环中等待。 | |
LogicalApplyMain
|
在逻辑应用程序的主循环中等待。 | |
PgStatMain
|
在统计收集器进程的主循环中等待。 | |
RecoveryWalAll
|
在恢复期间从任何类型的源(本地,归档或流)等待WAL。 | |
RecoveryWalStream
|
在恢复期间从流中等待WAL。 | |
SysLoggerMain
|
在syslogger进程的主循环中等待。 | |
WalReceiverMain
|
在WAL接收器进程的主循环中等待。 | |
WalSenderMain
|
在WAL发送器进程的主循环中等待。 | |
WalWriterMain
|
在WAL编写器进程的主循环中等待。 | |
Client
|
ClientRead
|
等待从客户端读取数据。 |
ClientWrite
|
等待从客户端写入数据。 | |
LibPQWalReceiverConnect
|
等待WAL接收器建立与远程服务器的连接。 | |
LibPQWalReceiverReceive
|
等待WAL接收器接收来自远程服务器的数据。 | |
SSLOpenServer
|
尝试连接时等待SSL。 | |
WalReceiverWaitStart
|
等待启动进程发送流式复制的初始数据。 | |
WalSenderWaitForWAL
|
等待WAL在WAL发送者进程中刷新。 | |
WalSenderWriteData
|
在WAL发送者进程中处理来自WAL接收者的回复时等待任何活动。 | |
Extension
|
Extension
|
在一个扩展中等待。 |
IPC
|
BgWorkerShutdown
|
等待后台工作者关闭。 |
BgWorkerStartup
|
等待后台工作者启动。 | |
BtreePage
|
等待继续并行B-tree扫描变得可用所需的页码 | |
ExecuteGather
|
在执行Gather 节点时等待子进程的活动。 |
|
LogicalSyncData
|
等待逻辑复制远程服务器为初始表同步发送数据。 | |
LogicalSyncStateChange
|
等待逻辑复制远程服务器更改状态。 | |
MessageQueueInternal
|
等待其他进程被附加到共享消息队列中。 | |
MessageQueuePutMessage
|
等待将协议消息写入共享消息队列。 | |
MessageQueueReceive
|
等待接收来自共享消息队列的字节。 | |
MessageQueueSend
|
等待将字节发送到共享消息队列。 | |
ParallelFinish
|
等待并行工作者完成计算。 | |
ParallelBitmapScan
|
等待并行位图扫描初始化。 | |
ProcArrayGroupUpdate
|
等待小组负责人在事务结束时清除事务ID。 | |
ReplicationOriginDrop
|
等待复制起点变为非活动状态以便删除。 | |
ReplicationSlotDrop
|
等待复制槽变为非活动状态以便删除。 | |
SafeSnapshot
|
等待READ ONLY DEFERRABLE 事务的快照。 |
|
SyncRep
|
在同步复制期间等待来自远程服务器的确认。 | |
Timeout
|
BaseBackupThrottle
|
节流活动时在基准备份期间等待。 |
PgSleep
|
在名为pg_sleep 的进程中等待。 |
|
RecoveryApplyDelay
|
等待恢复时使用WAL,因为它被延迟。 | |
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
|
在重新检查数据目录锁定文件期间等待读取。 | |
LogicalRewriteCheckpointSync
|
等待逻辑重写映射在检查点期间达到稳定存储。 | |
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
|
通过复制现有的WAL段创建新的WAL段时等待读取。 | |
WALCopySync
|
等待通过复制现有WAL段来创建新的WAL段达到稳定的存储。 | |
WALCopyWrite
|
通过复制现有的WAL段来创建新的WAL段时,等待写入。 | |
WALInitSync
|
等待新初始化的WAL文件达到稳定存储。 | |
WALInitWrite
|
在初始化新的WAL文件时等待写入。 | |
WALRead
|
等待从WAL文件读取。 | |
WALSenderTimelineHistoryRead
|
在walsender时间轴命令期间等待时间线历史文件的读取。 | |
WALSyncMethodAssign
|
在分配WAL同步方法时等待数据达到稳定存储。 | |
WALWrite
|
等待写入WAL文件。 |
注意
对于扩展安装的切片(tranche),这个名称由扩展指定并且会被wait_event
显示出来。很有可能在其他后端不知道的情况下,用户在其中一个后端中注册了切片(通过在动态共享内存中分配),那么我们对这种情况会显示extension
。
下面的例子展示了如何查看等待事件
SELECT pid, wait_event_type, wait_event FROM pg_stat_activity WHERE wait_event is NOT NULL; pid | wait_event_type | wait_event ------+-----------------+--------------- 2540 | Lock | relation 6644 | LWLock | ProcArrayLock (2 rows)
表 28.5. pg_stat_replication
视图
列 | 类型 | 描述 |
---|---|---|
pid
|
integer
|
一个 WAL 发送进程的进程 ID |
usesysid
|
oid
|
登录到这个 WAL 发送进程的用户的 OID |
usename
|
name
|
登录到这个 WAL 发送进程的用户的名称 |
application_name
|
text
|
连接到这个 WAL 发送进程的应用的名称 |
client_addr
|
inet
|
连接到这个 WAL 发送进程的客户端的 IP 地址。 如果这个域为空,它表示该客户端通过服务器机器上的一个 Unix 套接字连接。 |
client_hostname
|
text
|
连接上的客户端的主机名,由一次对client_addr
的逆向 DNS 查找报告。这个域将只对 IP 连接非空,并且只有在
log_hostname被启用时非空
|
client_port
|
integer
|
客户端用来与这个 WAL 发送进程通讯的 TCP 端口号,
如果使用 Unix 套接字则为-1
|
backend_start
|
timestamp with time zone
|
这个进程开始的时间,即客户端是何时连接到这个 WAL 发送进程的 |
backend_xmin
|
xid
|
由hot_standby_feedback报告
的这个后备机的xmin 水平线。 |
state
|
text
|
当前的 WAL 发送进程状态
可能的值是:
推荐阅读 |