本章节主要介绍PolarDB PostgreSQL版(兼容Oracle)中的不同视图详细信息,可通过查询不同视图获取相关实例信息,进而方便定位性能问题。
数据库基本信息
- pg_stat_databasepg_stat_database视图将显示集群中每一个数据库中的每一行数据库范围的统计信息。相关参数信息如下表所示:
参数 类型 描述 datid
oid 数据库OID。 datname
name 数据库名称。 numbackends
integer 当前连接到数据库的后端数量。这是在视图中唯一一个返回反映当前状态值的列。所有其他列返回从上次重置以来积累的值。 xact_commit
bigint 数据库中已经被提交的事务的数量。 xact_rollback
bigint 数据库中已经被回滚的事务的数量。 blks_read
bigint 数据库中被读取的磁盘块的数量。 blks_hit
bigint 磁盘块被发现已经在缓冲区中的次数,这样不需要一次读取(这只包括PolarDB PostgreSQL版(兼容Oracle)缓冲区中的命中,而不包括在操作系统文件系统缓冲区中的命中)。 tup_returned
bigint 数据库中被查询返回的行数。 tup_fetched
bigint 数据库中被查询取出的行数。 tup_inserted
bigint 数据库中被查询插入的行数。 tup_updated
bigint 数据库中被查询更新的行数。 tup_deleted
bigint 数据库中被查询删除的行数。 conflicts
bigint 由于与恢复冲突而在数据库中被取消的查询的数目。 temp_files
bigint 在数据库中被查询创建的临时文件的数量。所有临时文件都会被统计,忽略创建这些临时文件(例如排序或哈希)的原因,并且忽略 log_temp_files
的设置。temp_bytes
bigint 在数据库中被查询写到临时文件中的数据总量。所有临时文件都会被统计,忽略创建这些临时文件的原因,并且忽略 log_temp_files
的设置。deadlocks
bigint 在数据库中被检测到的死锁数。 blk_read_time
double precision 在数据库中后端花费在读取数据文件块的时间。单位:毫秒。 blk_write_time
double precision 在数据库中后端花费在写数据文件块的时间。单位:毫秒。 stats_reset
timestamp with time zone 统计信息最近一次被重置的时间。 - pg_stat_bgwriterpg_stat_bgwriter视图将只有单独的一行,包含集群的全局数据。
参数 类型 描述 checkpoints_timed
bigint 已经被执行的检查点的数量。 checkpoints_req
bigint 已经被执行的请求检查点的数量。 checkpoint_write_time
double precision 在文件被写入磁盘的检查点处理部分花费的总时间。单位:毫秒。 checkpoint_sync_time
double precision 在文件被同步到磁盘中的检查点处理部分花费的总时间。单位:毫秒。 buffers_checkpoint
bigint 在检查点期间被写的缓冲区数目。 buffers_clean
bigint 被后台写进程写的缓冲区数目。 maxwritten_clean
bigint 后台写进程由于已经写了太多缓冲区而停止清洁扫描的次数。 buffers_backend
bigint 被后端直接写的缓冲区数量。 buffers_backend_fsync
bigint 执行fsync调用的次数(通常即使后端会自动进行写操作,后台写进程也会处理这些)。 buffers_alloc
bigint 被分配的缓冲区数量。 stats_reset
timestamp with time zone 这些统计信息上次被重置的时间。
活动状态
- polar_stat_activity描述所有进程的当前状态,polar_stat_activity视图统计的是累计值。
参数 类型 描述 datid
oid 数据库OID。 datname
name 数据库名称。 pid
integer 进程ID。 usesysid
oid 用户ID。 usename
name 用户名。 application_name
text 连接名称。 client_addr
inet 客户端IP。 client_hostname
text 客户端机器名。 client_port
integer 客户端端口。 backend_start
timestamp 客户端连接创建时间。 xact_start
timestamp 事务开始时间。 query_start
timestamp 当前SQL开始执行时间。 state_change
timestamp 当前状态变更时间。 wait_event_type
text 等待事件类型,后端正在等待的事件类型,如果不存在则为 NULL。可能的值有: LWLock
:后端正在等待轻量级锁。每一个这样的锁保护着共享内存中的一个特殊数据结构。wait_event
将含有标识该轻量级锁目的的名称(一些锁具有特定的名称,其他是一组具有类似目的的锁中的一部分)。Lock
:后端正在等待重量级锁。重量级锁,也称为锁管理器锁或者简单锁,主要保护 SQL 可见的对象,例如表。不过,它们也被用于确保特定内部操作的互斥,例如关系扩展。wait_event
将标识等待的锁的类型。BufferPin
:服务器进程正在等待访问数据缓冲区,而此时没有其他进程正在检查该缓冲区。如果另一个进程持有一个最终从要访问的缓冲区中读取数据的打开的游标,缓冲区 pin 等待可能会被拖延。Activity
:服务器进程处于闲置状态。这被用于在其主处理循环中等待活动的系统进程。wait_event
将标识特定的等待点。Extension
:服务器进程正在扩展模块中等待活动。这个分类被用于要跟踪自定义等待点的模块。Client
服务器进程正在套接字上等待来自用户应用的某种活动,并且该服务器预期某种与其内部处理无关的事情发生。wait_event
将标识特定的等待点。IPC
服务器进程正在等待来自服务器中另一个进程的某种活动。wait_event
将标识特定的等待点。Timeout
服务器进程正在等待超时发生。wait_event
将标识特定的等待点。IO
服务器进程正在等待IO完成。wait_event
将标识特定的等待点。
wait_event
text 如果后端当前正在等待,则是等待事件的名称,否则为 NULL。 state
text 当前状态。 backend_xid
xid 当前客户端xid。 backend_xmin
xid 当前客户端xmin。 query
text SQL语句。 backend_type
text 当前backend类型。 queryid
bigint SQL唯一标识 wait_object
text 如果有等待事件, 表示所等待的对象。 wait_type
text 如果有等待事件, 表示等待对象的类型。 wait_time_ms
double 如果有等待事件, 表示已经等待的时间。 cpu_user
bigint 当前backend用户态CPU。 cpu_sys
bigint 当前backend系统态CPU。 rss
bigint 当前backend内存占用。 pfs_read_ps
bigint pfs读IO累计次数。 pfs_write_ps
bigint pfs写IO累计次数。 pfs_read_throughput
bigint pfs读IO累计吞吐量。 pfs_write_throughput
bigint pfs写IO累计吞吐量。 pfs_read_latency_ms
double pfs读IO延迟时间。 pfs_write_latency_ms
double pfs写IO延迟时间。 local_read_ps
bigint 本地文件系统读IO累计次数。 local_write_ps
bigint 本地文件系统写IO累计次数。 local_read_throughput
bigint 本地文件系统读IO累计吞吐量。 local_write_throughput
bigint 本地文件系统写IO累计吞吐量。 local_read_latency_ms
double 本地文件系统读IO延迟时间。 local_write_latency_ms
double 本地文件系统写IO延迟时间。 等待事件类型描述等待事件类型 等待事件名称 描述 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共享迭代器锁。 parallel_append 在Parallel Append计划执行期间等待选择下一个子计划。 parallel_hash_join 在Parallel Hash计划执行期间等待分配或交换一块内存或者更新计数器。 Lock
relation 正等待获得关系上的锁。 extend 正等待扩展关系。 page 正等待获得关系上的页面的锁。 tuple 正等待获得元组上的锁。 transactionid 正等待事务结束。 virtualxid 正等待获得虚拟 xid 锁。 speculative token 正等待获取speculative insertion lock。 object 正等待获得非关系数据库对象上的锁。 userlock 正等待获得用户锁。 advisory 正等待获得咨询用户锁。 BufferPin
BufferPin 正等待在缓冲区上加 pin。 Activity
ArchiverMain 正在归档进程的主循环中等待。 AutoVacuumMain 正在autovacuum启动器进程的主循环中等待。 BgWriterHibernate 正在后台写入器进程中等待,休眠中。 BgWriterMain 正在后台写入器进程的后台工作者的主循环中等待。 CheckpointerMain 正在检查点进程的主循环中等待。 LogicalApplyMain 正在逻辑应用进程的主循环中等待。 LogicalLauncherMain 正在逻辑启动器进程的主循环中等待。 PgStatMain 正在统计收集器进程的主循环中等待。 RecoveryWalAll 在恢复时等待来自于任意类型来源(本地、归档或流)的WAL。 RecoveryWalStream 在恢复时等待来自于流的WAL。 SysLoggerMain 正在系统日志进程的主循环中等待。 WalReceiverMain 正在WAL接收器进程的主循环中等待。 WalSenderMain 正在WAL发送器进程的主循环中等待。 WalWriterMain 正在WAL写入器进程的主循环中等待。 Client
ClientRead 正等待从客户端读取数据。 ClientWrite 正等待向客户端写入数据。 LibPQWalReceiverConnect 正在WAL接收器中等待建立与远程服务器的连接。 LibPQWalReceiverReceive 正在WAL接收器中等待从远程服务器接收数据。 SSLOpenServer 正在尝试连接期间等待SSL。 WalReceiverWaitStart 正等待startup进程发送流复制的初始数据。 WalSenderWaitForWAL 正在WAL发送器进程中等待WAL被刷写。 WalSenderWriteData 在WAL发送器进程中处理来自WAL接收器的回复时等待任意活动。 Extension
Extension 正在扩展中等待。 IPC
BgWorkerShutdown 正等待后台工作者关闭。 BgWorkerStartup 正等待后台工作者启动。 BtreePage 正等待继续并行B-树扫描所需的页号变得可用。 ClogGroupUpdate 正等待组领袖在事务结束时更新事务状态。 ExecuteGather 在执行Gather节点时等待来自子进程的活动。 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 Hash参与者决定未来的批次增长。 Hash/GrowBatches/Electing 正在选出Parallel Hash参与者分配更多批次。 Hash/GrowBatches/Finishing 正在等待选出的Parallel Hash参与者决定未来的批次增长。 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。 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文件的写操作。 说明 polar_stat_activity视图依赖于polar_monitor
插件,其中该插件在安装PolarDB PostgreSQL版(兼容Oracle)数据库后已默认存在,但需执行create extension polar_monitor命令使其生效。 - polar_stat_activity_rt描述所有进程的当前状态, polar_stat_activity_rt视图统计的是实时数据。
参数 类型 描述 pid
integer 进程ID。 backend_type
text 当前backend类型。 cpu_user
bigint 当前backend用户态CPU。 cpu_sys
bigint 当前backend系统态CPU。 rss
bigint 当前backend内存占用。 local_read_ps
bigint 本地文件系统读IO累计次数。 local_write_ps
bigint 本地文件系统写IO累计次数。 local_read_throughput
bigint 本地文件系统读IO累计吞吐量。 local_write_throughput
bigint 本地文件系统写IO累计吞吐量。 local_read_latency_ms
double 本地文件系统读IO延迟时间。 local_write_latency_ms
double 本地文件系统写IO延迟时间。 说明 polar_stat_activity_rt视图依赖于polar_monitor
插件,其中该插件在安装PolarDB PostgreSQL版(兼容Oracle)数据库后已默认存在,但需执行create extension polar_monitor
命令使其生效。 - polar_delta重要
polar_delta
是一个函数,用于获取视图的增量值,依赖于polar_monitor
插件。其中该插件在安装PolarDB PostgreSQL版(兼容Oracle)数据库后已默认存在,但需执行create extension polar_monitor
命令使其生效。使用说明如下:- 创建具有维度列和值列的视图。
- 维度列名称必须以d开头。
- 值列名称必须以v开头。
- 使用以下方法获取视图:
"select * from polar_delta (NULL::view_name)" "\watch 1 select * from polar_delta (NULL::view_name)"
- 创建具有维度列和值列的视图。
资源
- CPU
会话级别的CPU指标已在polar_stat_activity视图中体现。
- 共享内存
PolarDB的buffer pool和latch等其它全局数据结构,均分配于共享内存中,它在启动时即静态申请完成,通过查看如下视图可获取相关信息。
polar_stat_shmem
描述各类共享内存的监控信息。相关参数说明如下表所示:参数 类型 描述 shmname
text 共享内存区域名。 shmsize
bigint 共享内存大小(字节数)。 shmtype
text 共享内存类型。 说明 polar_stat_shmem视图依赖于polar_monitor
插件,其中该插件在安装PolarDB PostgreSQL版(兼容Oracle)数据库后已默认存在,但需执行create extension polar_monitor
命令使其生效。polar_stat_shmem_total_size
描述共享内存的监控汇总信息。相关参数说明如下表所示:参数 类型 描述 shmsize
bigint 共享内存大小(字节数)。 shmtype
text 共享内存类型。 说明 polar_stat_shmem_total_size视图依赖于polar_monitor
插件,其中该插件在安装PolarDB PostgreSQL版(兼容Oracle)数据库后已默认存在,但需执行create extension polar_monitor
使其生效。
- 会话私有内存
PolarDB的私有内存均在运行过程中动态分配或释放,其中会话级别的内存指标已经在polar_stat_activity中体现,更进一步,PolarDB中会使用内存上下文作为动态内存管理的基本单位,可以通过查看以下函数及视图获取。
- polar_get_mcxt()函数
参数 类型 描述 pid
integer 会话进程pid。 name
text memory context名称。 level
int 层级。 nblocks
bigint 占用block数量。 freechunks
bigint 空闲block数量。 totalspace
bigint 总空间(字节数)。 freespace
bigint 空闲空间(字节数)。 polar_backends_mcxt
按照backend_type为粒度,统计内存上下文信息。相关参数说明如下表所示:参数 类型 描述 pid
integer 进程ID。 name
text memory context名称。 nblocks
bigint 占用block数量。 freechunks
bigint 空闲block数量。 totalspace
bigint 总空间(字节数)。 freespace
bigint 空闲空间(字节数)。 说明 polar_backends_mcxt视图依赖于polar_monitor
插件,其中该插件在安装PolarDB PostgreSQL版(兼容Oracle)数据库后已默认存在,但需执行create extension polar_monitor
命令使其生效。
- polar_get_mcxt()函数
- I/O
会话级别的I/O指标已经在polar_stat_activity中体现,文件级别的I/O信息及I/O延迟分布可以通过查询以下视图获取。
- polar_stat_io_info按照文件类型为维度,描述I/O监控信息。相关参数说明如下表所示:
参数 类型 描述 filetype
text 文件类型。 fileloc
text 文件所在文件系统(目前有本地文件系统和共享文件系统PFS两种形式)。 open_count
numeric 文件打开总次数。 open_latency_us
double 文件打开总延迟。单位:微秒。 close_count
numeric 文件关闭总次数。 read_count
numeric 读文件总次数。 write_count
numeric 写文件总次数。 read_throughput
numeric 读文件总吞吐。 write_throughput
numeric 写文件总吞吐。 read_latency_us
double 读文件总延迟 。单位:微秒。 write_latency_us
double 写文件总延迟。单位:微秒。 seek_count
numeric seek总次数。 seek_latency_us
double seek总延迟。 creat_count
numeric 创建文件总次数。 creat_latency_us
double 创建文件总延迟。 fsync_count
numeric fsync总次数。 fsync_latency_us
double fsync总延迟。 falloc_count
numeric falloc总次数。 falloc_latency_us
double falloc总延迟。 说明 polar_stat_io_info视图依赖于polar_monitor
插件,其中该插件在安装PolarDB PostgreSQL版(兼容Oracle)数据库后已默认存在,但需执行create extension polar_monitor
命令使其生效。 - polar_stat_io_latency按照I/O类型为维度,统计I/O延时信息。相关参数说明如下表所示:
参数 类型 描述 iokind
text 文件操作类型: fsync
、creat
、seek
、open
、read
、write
、falloc
。num_lessthan200us
numeric 小于200微秒总次数。 num_lessthan400us
numeric 大于200微秒小于400微秒总次数。 num_lessthan600us
numeric 大于400微秒小于600微秒总次数。 num_lessthan800us
numeric 大于600微秒小于800微秒总次数。 num_lessthan1ms
numeric 大于800微秒小于1毫秒总次数。 num_lessthan10ms
numeric 大于1毫秒小于10毫秒总次数。 num_lessthan100ms
numeric 大于10毫秒小于100毫秒总次数。 num_morethan100ms
numeric 大于100毫秒总次数。 说明 polar_stat_io_latency视图依赖于polar_monitor
插件。其中该插件在安装PolarDB PostgreSQL版(兼容Oracle)数据库后已默认存在,但需执行create extension polar_monitor
命令使其生效。
- polar_stat_io_info
- 网络
您可以通过查询本文描述的视图来获取网络监控信息。
- polar_proc_stat_network()函数
参数 类型 描述 pid
bigint 进程pid。 send_bytes
bigint 累计发送字节数。 send_count
bigint 累计发送次数。 recv_bytes
bigint 累计接收字节数。 recv_count
bigint 累计接收次数。 sendq
bigint socket发送队列长度。 recvq
bigint socket接收队列长度。 cwnd
bigint socket滑动窗口大小。 rtt
bigint TCP估算的网络rtt时间,单位:微秒。 retrans
bigint 累计重传次数。 tcpinfo_update_time
bigint TCP socket相关监控信息的最近更新时间。实际为秒级时间戳,原则上每秒更新一次,上述 sendq
,recvq
,cwnd
,rtt
,retrans
指标会定期更新,更新时间为tcpinfo_update_time
。 - polar_stat_network描述网络监控信息汇总数据。相关参数信息如下:
参数 类型 描述 send_count
bigint 发送总次数。 send_bytes
bigint 发送总字节数。 recv_count
bigint 接收总次数。 recv_bytes
bigint 接收总字节数。 retrans
bigint 总重传次数。 说明 polar_stat_network视图依赖于polar_monitor
插件。其中该插件在安装PolarDB PostgreSQL版(兼容Oracle)数据库后已默认存在,但需执行create extension polar_monitor命令使其生效。
- polar_proc_stat_network()函数
- 锁
您可以通过本文描述的视图来获取相关锁信息。
- LWLock
polar_stat_lwlock
latch监控信息统计。相关参数信息如下:参数 类型 描述 tranche
smallint lwlock ID name
text 锁名称。 sh_acquire_count
bigint 共享获取总次数。 ex_acquire_count
bigint 排它获取总次数。 block_count
bigint 获取阻塞总次数。 lock_nums
bigint lwlock个数。 wait_time
bigint 总等待时间。 说明 polar_stat_lwlock视图依赖于polar_monitor_preload
插件,其中该插件在安装PolarDB PostgreSQL版(兼容Oracle)数据库后已默认存在,但需执行create extension polar_monitor_preload命令使其生效。 - Lock
- pg_locks
参数 类型 描述 locktype
text 可锁对象的类型: relation, extend, page, tuple, transactionid, virtualxid, object, userlock或advisory。 database
oid 锁目标存在的数据库的OID。如果目标是共享对象则为0,如果目标是事务ID则为空。 relation
oid 作为锁目标的关系的OID。如果目标不是关系或者只是关系的一部分,则值为空。 page
integer 作为锁目标的页在关系中的页号。如果目标不是关系页或元组,则值为空。 tuple
smallint 作为锁目标的元组在页中的元组号。如果目标不是元组,则值为空。 virtualxid
text 作为锁目标的事务虚拟ID。如果目标不是虚拟事务ID,则值为空。 transactionid
xid 作为锁目标的事务ID。如果目标不是事务ID,则值为空ID。 classid
oid 包含锁目标的系统目录的OID。如果目标不是普通数据库对象,则值为空。 objid
oid 锁目标在它的系统目录中的OID。如果目标不是普通数据库对象,则为空。 objsubid
smallint 锁的目标列号(classid和objid指表本身)。如果目标是某种其他普通数据库对象,则值为0。如果目标不是普通数据库对象,则值为空。 virtualtransaction
text 保持锁或者正在等待锁的事务的虚拟ID。 pid
integer 保持锁或者正在等待锁的服务器进程的PID。如果此锁被预备事务所持有,则值为空。 mode
text 此进程已持有或者希望持有的锁模式。 granted
boolean 如果锁已授予则为真。如果锁被等待则为假。 fastpath
boolean 如果锁通过快速路径获得则为真。通过主锁表获得则为假。 - polar_stat_lock统计锁信息。相关参数信息如下:
参数 类型 描述 id
integer 主键。 lock_type
text 锁类型。 invalid
numeric 无意义。 accesssharelock
numeric access share lock锁次数。 rowsharelock
numeric row share lock锁次数。 rowexclusivelock
numeric row exclusive lock锁次数。 shareupdateexclusivelock
numeric share update exclusive lock锁次数。 sharelock
numeric share lock锁次数。 sharerowexclusivelock
numeric share row exclusive lock锁次数。 exclusivelock
numeric exclusive lock锁次数。 accessexclusivelock
numeric access exclusive lock锁次数。 block_count
numeric 锁阻塞次数。 fastpath_count
numeric 本地快速锁次数。 wait_time
numeric 锁等待时间。 说明 polar_stat_lock视图依赖于polar_monitor_preload
插件,其中该插件在安装PolarDB PostgreSQL版(兼容Oracle)数据库后已默认存在,但需执行create extension polar_monitor_preload
命令使其生效。
- pg_locks
- LWLock
- Slru
您可以通过查询 polar_stat_slru() 视图来获取相关slru监控信息。
polar_stat_slru()
统计slru监控信息。相关参数信息如下:参数 类型 描述 slru_type
text 主键 slots_number
integer page数量。 valid_pages
integer 使用page数。 empty_pages
integer 空page数。 reading_pages
integer 正在读的page数。 writing_pages
integer 正在写的page数。 wait_readings
integer 等待读数量。 wait_writings
integer 等待写数量。 read_count
bigint read次数。 read_only_count
bigint read only次数。 read_upgrade_count
bigint 升级读次数。 victim_count
bigint 直接淘汰次数。 victim_write_count
bigint 淘汰落盘次数。 write_count
bigint 写次数。 zero_count
bigint 清零次数。 flush_count
bigint flush次数。 truncate_count
bigint truncate次数。 storage_read_count
bigint 读存储次数。 storage_write_count
bigint 写存储次数。 说明 polar_stat_slru视图依赖于polar_monitor
插件。其中该插件在安装PolarDB PostgreSQL版(兼容Oracle)数据库后已默认存在,但需执行create extension polar_monitor
命令使其生效。 - cgroup
您可以通过查询本文描述的视图来获取相关系统资源信息。
- polar_stat_cgroup
统计各类系统资源、cgroup信息。相关参数说明如下表所示:
参数 类型 描述 subtype
text cgroup类型(IO、Memory、CPU)。 infotype
text cgroup信息。 count
bigint 计数。 说明 polar_stat_cgroup视图依赖于polar_monitor_preload
和polar_monitor
插件,其中polar_monitor_preload
和polar_monitor
插件在安装PolarDB PostgreSQL版(兼容Oracle)数据库后已默认存在,但需分别执行create extension polar_monitor_preload和create extension polar_monitor命令使其生效。 - polar_cgroup_quota统计各类系统资源、cgroup配额信息。相关参数说明如下表所示:
参数 类型 描述 subtype
text cgroup类型(IO、Memory、CPU)。 infotype
text cgroup信息。 count
bigint 限额带下。 说明 polar_cgroup_quota视图依赖于polar_monitor
插件,其中该插件在安装PolarDB PostgreSQL版(兼容Oracle)数据库后已默认存在,但需执行create extension polar_monitor
命令使其生效。
- polar_stat_cgroup