本章节主要介绍PolarDB PostgreSQL版(兼容Oracle)中的不同视图详细信息,可通过查询不同视图获取相关实例信息,进而方便定位性能问题。
数据库基本信息
- pg_stat_databasepg_stat_database视图将显示集群中每一个数据库中的每一行数据库范围的统计信息。相关参数信息如下表所示:
参数 类型 描述 datidoid 数据库OID。 datnamename 数据库名称。 numbackendsinteger 当前连接到数据库的后端数量。这是在视图中唯一一个返回反映当前状态值的列。所有其他列返回从上次重置以来积累的值。 xact_commitbigint 数据库中已经被提交的事务的数量。 xact_rollbackbigint 数据库中已经被回滚的事务的数量。 blks_readbigint 数据库中被读取的磁盘块的数量。 blks_hitbigint 磁盘块被发现已经在缓冲区中的次数,这样不需要一次读取(这只包括PolarDB PostgreSQL版(兼容Oracle)缓冲区中的命中,而不包括在操作系统文件系统缓冲区中的命中)。 tup_returnedbigint 数据库中被查询返回的行数。 tup_fetchedbigint 数据库中被查询取出的行数。 tup_insertedbigint 数据库中被查询插入的行数。 tup_updatedbigint 数据库中被查询更新的行数。 tup_deletedbigint 数据库中被查询删除的行数。 conflictsbigint 由于与恢复冲突而在数据库中被取消的查询的数目。 temp_filesbigint 在数据库中被查询创建的临时文件的数量。所有临时文件都会被统计,忽略创建这些临时文件(例如排序或哈希)的原因,并且忽略 log_temp_files的设置。temp_bytesbigint 在数据库中被查询写到临时文件中的数据总量。所有临时文件都会被统计,忽略创建这些临时文件的原因,并且忽略 log_temp_files的设置。deadlocksbigint 在数据库中被检测到的死锁数。 blk_read_timedouble precision 在数据库中后端花费在读取数据文件块的时间。单位:毫秒。 blk_write_timedouble precision 在数据库中后端花费在写数据文件块的时间。单位:毫秒。 stats_resettimestamp with time zone 统计信息最近一次被重置的时间。 - pg_stat_bgwriterpg_stat_bgwriter视图将只有单独的一行,包含集群的全局数据。
参数 类型 描述 checkpoints_timedbigint 已经被执行的检查点的数量。 checkpoints_reqbigint 已经被执行的请求检查点的数量。 checkpoint_write_timedouble precision 在文件被写入磁盘的检查点处理部分花费的总时间。单位:毫秒。 checkpoint_sync_timedouble precision 在文件被同步到磁盘中的检查点处理部分花费的总时间。单位:毫秒。 buffers_checkpointbigint 在检查点期间被写的缓冲区数目。 buffers_cleanbigint 被后台写进程写的缓冲区数目。 maxwritten_cleanbigint 后台写进程由于已经写了太多缓冲区而停止清洁扫描的次数。 buffers_backendbigint 被后端直接写的缓冲区数量。 buffers_backend_fsyncbigint 执行fsync调用的次数(通常即使后端会自动进行写操作,后台写进程也会处理这些)。 buffers_allocbigint 被分配的缓冲区数量。 stats_resettimestamp with time zone 这些统计信息上次被重置的时间。
活动状态
- polar_stat_activity描述所有进程的当前状态,polar_stat_activity视图统计的是累计值。
参数 类型 描述 datidoid 数据库OID。 datnamename 数据库名称。 pidinteger 进程ID。 usesysidoid 用户ID。 usenamename 用户名。 application_nametext 连接名称。 client_addrinet 客户端IP。 client_hostnametext 客户端机器名。 client_portinteger 客户端端口。 backend_starttimestamp 客户端连接创建时间。 xact_starttimestamp 事务开始时间。 query_starttimestamp 当前SQL开始执行时间。 state_changetimestamp 当前状态变更时间。 wait_event_typetext 等待事件类型,后端正在等待的事件类型,如果不存在则为 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_eventtext 如果后端当前正在等待,则是等待事件的名称,否则为 NULL。 statetext 当前状态。 backend_xidxid 当前客户端xid。 backend_xminxid 当前客户端xmin。 querytext SQL语句。 backend_typetext 当前backend类型。 queryidbigint SQL唯一标识 wait_objecttext 如果有等待事件, 表示所等待的对象。 wait_typetext 如果有等待事件, 表示等待对象的类型。 wait_time_msdouble 如果有等待事件, 表示已经等待的时间。 cpu_userbigint 当前backend用户态CPU。 cpu_sysbigint 当前backend系统态CPU。 rssbigint 当前backend内存占用。 pfs_read_psbigint pfs读IO累计次数。 pfs_write_psbigint pfs写IO累计次数。 pfs_read_throughputbigint pfs读IO累计吞吐量。 pfs_write_throughputbigint pfs写IO累计吞吐量。 pfs_read_latency_msdouble pfs读IO延迟时间。 pfs_write_latency_msdouble pfs写IO延迟时间。 local_read_psbigint 本地文件系统读IO累计次数。 local_write_psbigint 本地文件系统写IO累计次数。 local_read_throughputbigint 本地文件系统读IO累计吞吐量。 local_write_throughputbigint 本地文件系统写IO累计吞吐量。 local_read_latency_msdouble 本地文件系统读IO延迟时间。 local_write_latency_msdouble 本地文件系统写IO延迟时间。 等待事件类型描述等待事件类型 等待事件名称 描述 LWLockShmemIndexLock 正等待在共享内存中查找或者分配空间。 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计划执行期间等待分配或交换一块内存或者更新计数器。 Lockrelation 正等待获得关系上的锁。 extend 正等待扩展关系。 page 正等待获得关系上的页面的锁。 tuple 正等待获得元组上的锁。 transactionid 正等待事务结束。 virtualxid 正等待获得虚拟 xid 锁。 speculative token 正等待获取speculative insertion lock。 object 正等待获得非关系数据库对象上的锁。 userlock 正等待获得用户锁。 advisory 正等待获得咨询用户锁。 BufferPinBufferPin 正等待在缓冲区上加 pin。 ActivityArchiverMain 正在归档进程的主循环中等待。 AutoVacuumMain 正在autovacuum启动器进程的主循环中等待。 BgWriterHibernate 正在后台写入器进程中等待,休眠中。 BgWriterMain 正在后台写入器进程的后台工作者的主循环中等待。 CheckpointerMain 正在检查点进程的主循环中等待。 LogicalApplyMain 正在逻辑应用进程的主循环中等待。 LogicalLauncherMain 正在逻辑启动器进程的主循环中等待。 PgStatMain 正在统计收集器进程的主循环中等待。 RecoveryWalAll 在恢复时等待来自于任意类型来源(本地、归档或流)的WAL。 RecoveryWalStream 在恢复时等待来自于流的WAL。 SysLoggerMain 正在系统日志进程的主循环中等待。 WalReceiverMain 正在WAL接收器进程的主循环中等待。 WalSenderMain 正在WAL发送器进程的主循环中等待。 WalWriterMain 正在WAL写入器进程的主循环中等待。 ClientClientRead 正等待从客户端读取数据。 ClientWrite 正等待向客户端写入数据。 LibPQWalReceiverConnect 正在WAL接收器中等待建立与远程服务器的连接。 LibPQWalReceiverReceive 正在WAL接收器中等待从远程服务器接收数据。 SSLOpenServer 正在尝试连接期间等待SSL。 WalReceiverWaitStart 正等待startup进程发送流复制的初始数据。 WalSenderWaitForWAL 正在WAL发送器进程中等待WAL被刷写。 WalSenderWriteData 在WAL发送器进程中处理来自WAL接收器的回复时等待任意活动。 ExtensionExtension 正在扩展中等待。 IPCBgWorkerShutdown 正等待后台工作者关闭。 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 正在同步复制期间等待来自远程服务器的确认。 TimeoutBaseBackupThrottle 当有限流活动时在基础备份期间等待。 PgSleep 正在调用pg_sleep的进程中等待。 RecoveryApplyDelay 在恢复时等待应用WAL,因为它被延迟了。 IOBufFileRead 正等待从缓存的文件中读取。 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视图统计的是实时数据。
参数 类型 描述 pidinteger 进程ID。 backend_typetext 当前backend类型。 cpu_userbigint 当前backend用户态CPU。 cpu_sysbigint 当前backend系统态CPU。 rssbigint 当前backend内存占用。 local_read_psbigint 本地文件系统读IO累计次数。 local_write_psbigint 本地文件系统写IO累计次数。 local_read_throughputbigint 本地文件系统读IO累计吞吐量。 local_write_throughputbigint 本地文件系统写IO累计吞吐量。 local_read_latency_msdouble 本地文件系统读IO延迟时间。 local_write_latency_msdouble 本地文件系统写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
描述各类共享内存的监控信息。相关参数说明如下表所示:参数 类型 描述 shmnametext 共享内存区域名。 shmsizebigint 共享内存大小(字节数)。 shmtypetext 共享内存类型。 说明 polar_stat_shmem视图依赖于polar_monitor插件,其中该插件在安装PolarDB PostgreSQL版(兼容Oracle)数据库后已默认存在,但需执行create extension polar_monitor命令使其生效。polar_stat_shmem_total_size
描述共享内存的监控汇总信息。相关参数说明如下表所示:参数 类型 描述 shmsizebigint 共享内存大小(字节数)。 shmtypetext 共享内存类型。 说明 polar_stat_shmem_total_size视图依赖于polar_monitor插件,其中该插件在安装PolarDB PostgreSQL版(兼容Oracle)数据库后已默认存在,但需执行create extension polar_monitor使其生效。
- 会话私有内存
PolarDB的私有内存均在运行过程中动态分配或释放,其中会话级别的内存指标已经在polar_stat_activity中体现,更进一步,PolarDB中会使用内存上下文作为动态内存管理的基本单位,可以通过查看以下函数及视图获取。
- polar_get_mcxt()函数
参数 类型 描述 pidinteger 会话进程pid。 nametext memory context名称。 levelint 层级。 nblocksbigint 占用block数量。 freechunksbigint 空闲block数量。 totalspacebigint 总空间(字节数)。 freespacebigint 空闲空间(字节数)。 polar_backends_mcxt
按照backend_type为粒度,统计内存上下文信息。相关参数说明如下表所示:参数 类型 描述 pidinteger 进程ID。 nametext memory context名称。 nblocksbigint 占用block数量。 freechunksbigint 空闲block数量。 totalspacebigint 总空间(字节数)。 freespacebigint 空闲空间(字节数)。 说明 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监控信息。相关参数说明如下表所示:
参数 类型 描述 filetypetext 文件类型。 fileloctext 文件所在文件系统(目前有本地文件系统和共享文件系统PFS两种形式)。 open_countnumeric 文件打开总次数。 open_latency_usdouble 文件打开总延迟。单位:微秒。 close_countnumeric 文件关闭总次数。 read_countnumeric 读文件总次数。 write_countnumeric 写文件总次数。 read_throughputnumeric 读文件总吞吐。 write_throughputnumeric 写文件总吞吐。 read_latency_usdouble 读文件总延迟 。单位:微秒。 write_latency_usdouble 写文件总延迟。单位:微秒。 seek_countnumeric seek总次数。 seek_latency_usdouble seek总延迟。 creat_countnumeric 创建文件总次数。 creat_latency_usdouble 创建文件总延迟。 fsync_countnumeric fsync总次数。 fsync_latency_usdouble fsync总延迟。 falloc_countnumeric falloc总次数。 falloc_latency_usdouble falloc总延迟。 说明 polar_stat_io_info视图依赖于polar_monitor插件,其中该插件在安装PolarDB PostgreSQL版(兼容Oracle)数据库后已默认存在,但需执行create extension polar_monitor命令使其生效。 - polar_stat_io_latency按照I/O类型为维度,统计I/O延时信息。相关参数说明如下表所示:
参数 类型 描述 iokindtext 文件操作类型: fsync、creat、seek、open、read、write、falloc。num_lessthan200usnumeric 小于200微秒总次数。 num_lessthan400usnumeric 大于200微秒小于400微秒总次数。 num_lessthan600usnumeric 大于400微秒小于600微秒总次数。 num_lessthan800usnumeric 大于600微秒小于800微秒总次数。 num_lessthan1msnumeric 大于800微秒小于1毫秒总次数。 num_lessthan10msnumeric 大于1毫秒小于10毫秒总次数。 num_lessthan100msnumeric 大于10毫秒小于100毫秒总次数。 num_morethan100msnumeric 大于100毫秒总次数。 说明 polar_stat_io_latency视图依赖于polar_monitor插件。其中该插件在安装PolarDB PostgreSQL版(兼容Oracle)数据库后已默认存在,但需执行create extension polar_monitor命令使其生效。
- polar_stat_io_info
- 网络
您可以通过查询本文描述的视图来获取网络监控信息。
- polar_proc_stat_network()函数
参数 类型 描述 pidbigint 进程pid。 send_bytesbigint 累计发送字节数。 send_countbigint 累计发送次数。 recv_bytesbigint 累计接收字节数。 recv_countbigint 累计接收次数。 sendqbigint socket发送队列长度。 recvqbigint socket接收队列长度。 cwndbigint socket滑动窗口大小。 rttbigint TCP估算的网络rtt时间,单位:微秒。 retransbigint 累计重传次数。 tcpinfo_update_timebigint TCP socket相关监控信息的最近更新时间。实际为秒级时间戳,原则上每秒更新一次,上述 sendq,recvq,cwnd,rtt,retrans指标会定期更新,更新时间为tcpinfo_update_time。 - polar_stat_network描述网络监控信息汇总数据。相关参数信息如下:
参数 类型 描述 send_countbigint 发送总次数。 send_bytesbigint 发送总字节数。 recv_countbigint 接收总次数。 recv_bytesbigint 接收总字节数。 retransbigint 总重传次数。 说明 polar_stat_network视图依赖于polar_monitor插件。其中该插件在安装PolarDB PostgreSQL版(兼容Oracle)数据库后已默认存在,但需执行create extension polar_monitor命令使其生效。
- polar_proc_stat_network()函数
- 锁
您可以通过本文描述的视图来获取相关锁信息。
- LWLock
polar_stat_lwlock
latch监控信息统计。相关参数信息如下:参数 类型 描述 tranchesmallint lwlock ID nametext 锁名称。 sh_acquire_countbigint 共享获取总次数。 ex_acquire_countbigint 排它获取总次数。 block_countbigint 获取阻塞总次数。 lock_numsbigint lwlock个数。 wait_timebigint 总等待时间。 说明 polar_stat_lwlock视图依赖于polar_monitor_preload插件,其中该插件在安装PolarDB PostgreSQL版(兼容Oracle)数据库后已默认存在,但需执行create extension polar_monitor_preload命令使其生效。 - Lock
- pg_locks
参数 类型 描述 locktypetext 可锁对象的类型: relation, extend, page, tuple, transactionid, virtualxid, object, userlock或advisory。 databaseoid 锁目标存在的数据库的OID。如果目标是共享对象则为0,如果目标是事务ID则为空。 relationoid 作为锁目标的关系的OID。如果目标不是关系或者只是关系的一部分,则值为空。 pageinteger 作为锁目标的页在关系中的页号。如果目标不是关系页或元组,则值为空。 tuplesmallint 作为锁目标的元组在页中的元组号。如果目标不是元组,则值为空。 virtualxidtext 作为锁目标的事务虚拟ID。如果目标不是虚拟事务ID,则值为空。 transactionidxid 作为锁目标的事务ID。如果目标不是事务ID,则值为空ID。 classidoid 包含锁目标的系统目录的OID。如果目标不是普通数据库对象,则值为空。 objidoid 锁目标在它的系统目录中的OID。如果目标不是普通数据库对象,则为空。 objsubidsmallint 锁的目标列号(classid和objid指表本身)。如果目标是某种其他普通数据库对象,则值为0。如果目标不是普通数据库对象,则值为空。 virtualtransactiontext 保持锁或者正在等待锁的事务的虚拟ID。 pidinteger 保持锁或者正在等待锁的服务器进程的PID。如果此锁被预备事务所持有,则值为空。 modetext 此进程已持有或者希望持有的锁模式。 grantedboolean 如果锁已授予则为真。如果锁被等待则为假。 fastpathboolean 如果锁通过快速路径获得则为真。通过主锁表获得则为假。 - polar_stat_lock统计锁信息。相关参数信息如下:
参数 类型 描述 idinteger 主键。 lock_typetext 锁类型。 invalidnumeric 无意义。 accesssharelocknumeric access share lock锁次数。 rowsharelocknumeric row share lock锁次数。 rowexclusivelocknumeric row exclusive lock锁次数。 shareupdateexclusivelocknumeric share update exclusive lock锁次数。 sharelocknumeric share lock锁次数。 sharerowexclusivelocknumeric share row exclusive lock锁次数。 exclusivelocknumeric exclusive lock锁次数。 accessexclusivelocknumeric access exclusive lock锁次数。 block_countnumeric 锁阻塞次数。 fastpath_countnumeric 本地快速锁次数。 wait_timenumeric 锁等待时间。 说明 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_typetext 主键 slots_numberinteger page数量。 valid_pagesinteger 使用page数。 empty_pagesinteger 空page数。 reading_pagesinteger 正在读的page数。 writing_pagesinteger 正在写的page数。 wait_readingsinteger 等待读数量。 wait_writingsinteger 等待写数量。 read_countbigint read次数。 read_only_countbigint read only次数。 read_upgrade_countbigint 升级读次数。 victim_countbigint 直接淘汰次数。 victim_write_countbigint 淘汰落盘次数。 write_countbigint 写次数。 zero_countbigint 清零次数。 flush_countbigint flush次数。 truncate_countbigint truncate次数。 storage_read_countbigint 读存储次数。 storage_write_countbigint 写存储次数。 说明 polar_stat_slru视图依赖于polar_monitor插件。其中该插件在安装PolarDB PostgreSQL版(兼容Oracle)数据库后已默认存在,但需执行create extension polar_monitor命令使其生效。 - cgroup
您可以通过查询本文描述的视图来获取相关系统资源信息。
- polar_stat_cgroup
统计各类系统资源、cgroup信息。相关参数说明如下表所示:
参数 类型 描述 subtypetext cgroup类型(IO、Memory、CPU)。 infotypetext cgroup信息。 countbigint 计数。 说明 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配额信息。相关参数说明如下表所示:
参数 类型 描述 subtypetext cgroup类型(IO、Memory、CPU)。 infotypetext cgroup信息。 countbigint 限额带下。 说明 polar_cgroup_quota视图依赖于polar_monitor插件,其中该插件在安装PolarDB PostgreSQL版(兼容Oracle)数据库后已默认存在,但需执行create extension polar_monitor命令使其生效。
- polar_stat_cgroup