本章节主要介绍PolarDB PostgreSQL版中的不同视图详细信息,可通过查询不同视图获取相关实例信息,进而方便定位性能问题。

数据库基本信息

  • pg_stat_database
    pg_stat_database视图将显示集群中每一个数据库中的每一行数据库范围的统计信息。相关参数信息如下表所示:
    参数类型描述
    datidoid数据库OID。
    datnamename数据库名称。
    numbackendsinteger当前连接到数据库的后端数量。这是在视图中唯一一个返回反映当前状态值的列。所有其他列返回从上次重置以来积累的值。
    xact_commitbigint数据库中已经被提交的事务的数量。
    xact_rollbackbigint数据库中已经被回滚的事务的数量。
    blks_readbigint数据库中被读取的磁盘块的数量。
    blks_hitbigint磁盘块被发现已经在缓冲区中的次数,这样不需要一次读取(这只包括PolarDB PostgreSQL版缓冲区中的命中,而不包括在操作系统文件系统缓冲区中的命中)。
    tup_returnedbigint数据库中被查询返回的行数。
    tup_fetchedbigint数据库中被查询取出的行数。
    tup_insertedbigint数据库中被查询插入的行数。
    tup_updated bigint数据库中被查询更新的行数。
    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_bgwriter
    pg_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_reset timestamp 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。
    querytextSQL语句。
    backend_typetext当前backend类型。
    queryidbigintSQL唯一标识
    wait_objecttext如果有等待事件, 表示所等待的对象。
    wait_typetext如果有等待事件, 表示等待对象的类型。
    wait_time_msdouble如果有等待事件, 表示已经等待的时间。
    cpu_userbigint当前backend用户态CPU。
    cpu_sysbigint当前backend系统态CPU。
    rssbigint当前backend内存占用。
    pfs_read_psbigintpfs读IO累计次数。
    pfs_write_psbigintpfs写IO累计次数。
    pfs_read_throughputbigintpfs读IO累计吞吐量。
    pfs_write_throughputbigintpfs写IO累计吞吐量。
    pfs_read_latency_msdoublepfs读IO延迟时间。
    pfs_write_latency_msdoublepfs写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版数据库后已默认存在,但需执行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版数据库后已默认存在,但需执行create extension polar_monitor命令使其生效。
  • polar_delta
    重要 polar_delta是一个函数,用于获取视图的增量值,依赖于polar_monitor插件。其中该插件在安装PolarDB PostgreSQL版数据库后已默认存在,但需执行create extension polar_monitor命令使其生效。
    使用说明如下:
    1. 创建具有维度列和值列的视图。
      • 维度列名称必须以d开头。
      • 值列名称必须以v开头。
    2. 使用以下方法获取视图:
      "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版数据库后已默认存在,但需执行create extension polar_monitor命令使其生效。
    • polar_stat_shmem_total_size

      描述共享内存的监控汇总信息。相关参数说明如下表所示:
      参数类型描述
      shmsizebigint共享内存大小(字节数)。
      shmtypetext共享内存类型。
      说明 polar_stat_shmem_total_size视图依赖于polar_monitor插件,其中该插件在安装PolarDB PostgreSQL版数据库后已默认存在,但需执行create extension polar_monitor使其生效。
  • 会话私有内存

    PolarDB的私有内存均在运行过程中动态分配或释放,其中会话级别的内存指标已经在polar_stat_activity中体现,更进一步,PolarDB中会使用内存上下文作为动态内存管理的基本单位,可以通过查看以下函数及视图获取。

    • polar_get_mcxt()函数
      参数类型描述
      pidinteger会话进程pid。
      nametextmemory context名称。
      levelint层级。
      nblocksbigint占用block数量。
      freechunksbigint空闲block数量。
      totalspacebigint总空间(字节数)。
      freespacebigint空闲空间(字节数)。
    • polar_backends_mcxt

      按照backend_type为粒度,统计内存上下文信息。相关参数说明如下表所示:
      参数类型描述
      pidinteger进程ID。
      nametextmemory context名称。
      nblocksbigint占用block数量。
      freechunksbigint空闲block数量。
      totalspacebigint总空间(字节数)。
      freespacebigint空闲空间(字节数)。
      说明 polar_backends_mcxt视图依赖于polar_monitor插件,其中该插件在安装PolarDB PostgreSQL版数据库后已默认存在,但需执行create extension polar_monitor命令使其生效。
  • 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_countnumericseek总次数。
      seek_latency_usdoubleseek总延迟。
      creat_countnumeric创建文件总次数。
      creat_latency_usdouble创建文件总延迟。
      fsync_countnumericfsync总次数。
      fsync_latency_usdoublefsync总延迟。
      falloc_countnumericfalloc总次数。
      falloc_latency_usdoublefalloc总延迟。
      说明 polar_stat_io_info视图依赖于polar_monitor插件,其中该插件在安装PolarDB PostgreSQL版数据库后已默认存在,但需执行create extension polar_monitor命令使其生效。
    • polar_stat_io_latency
      按照I/O类型为维度,统计I/O延时信息。相关参数说明如下表所示:
      参数类型描述
      iokindtext文件操作类型:fsync creat seekopenreadwritefalloc
      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版数据库后已默认存在,但需执行create extension polar_monitor命令使其生效。
  • 网络

    您可以通过查询本文描述的视图来获取网络监控信息。

    • polar_proc_stat_network()函数
      参数类型描述
      pidbigint进程pid。
      send_bytesbigint累计发送字节数。
      send_countbigint累计发送次数。
      recv_bytesbigint累计接收字节数。
      recv_countbigint累计接收次数。
      sendqbigintsocket发送队列长度。
      recvqbigintsocket接收队列长度。
      cwndbigintsocket滑动窗口大小。
      rttbigintTCP估算的网络rtt时间,单位:微秒。
      retransbigint累计重传次数。
      tcpinfo_update_timebigintTCP socket相关监控信息的最近更新时间。实际为秒级时间戳,原则上每秒更新一次,上述sendqrecvqcwndrttretrans指标会定期更新,更新时间为tcpinfo_update_time
    • polar_stat_network
      描述网络监控信息汇总数据。相关参数信息如下:
      参数类型描述
      send_countbigint发送总次数。
      send_bytesbigint发送总字节数。
      recv_countbigint接收总次数。
      recv_bytesbigint接收总字节数。
      retransbigint总重传次数。
      说明 polar_stat_network视图依赖于polar_monitor插件。其中该插件在安装PolarDB PostgreSQL版数据库后已默认存在,但需执行create extension polar_monitor命令使其生效。
  • 您可以通过本文描述的视图来获取相关锁信息。

    • LWLock

      polar_stat_lwlock

      latch监控信息统计。相关参数信息如下:
      参数类型描述
      tranchesmallintlwlock ID
      nametext锁名称。
      sh_acquire_countbigint共享获取总次数。
      ex_acquire_countbigint排它获取总次数。
      block_countbigint获取阻塞总次数。
      lock_nums bigintlwlock个数。
      wait_timebigint总等待时间。
      说明 polar_stat_lwlock视图依赖于polar_monitor_preload插件,其中该插件在安装PolarDB PostgreSQL版数据库后已默认存在,但需执行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无意义。
        accesssharelocknumericaccess share lock锁次数。
        rowsharelocknumericrow share lock锁次数。
        rowexclusivelocknumericrow exclusive lock锁次数。
        shareupdateexclusivelocknumericshare update exclusive lock锁次数。
        sharelocknumericshare lock锁次数。
        sharerowexclusivelocknumericshare row exclusive lock锁次数。
        exclusivelock numericexclusive lock锁次数。
        accessexclusivelock numericaccess exclusive lock锁次数。
        block_count numeric锁阻塞次数。
        fastpath_count numeric本地快速锁次数。
        wait_time numeric锁等待时间。
        说明 polar_stat_lock视图依赖于polar_monitor_preload插件,其中该插件在安装PolarDB PostgreSQL版数据库后已默认存在,但需执行create extension polar_monitor_preload命令使其生效。
  • Slru

    您可以通过查询 polar_stat_slru() 视图来获取相关slru监控信息。

    polar_stat_slru()

    统计slru监控信息。相关参数信息如下:
    参数类型描述
    slru_typetext主键
    slots_numberintegerpage数量。
    valid_pagesinteger使用page数。
    empty_pagesinteger空page数。
    reading_pagesinteger正在读的page数。
    writing_pagesinteger正在写的page数。
    wait_readingsinteger等待读数量。
    wait_writingsinteger等待写数量。
    read_countbigintread次数。
    read_only_countbigintread only次数。
    read_upgrade_countbigint升级读次数。
    victim_countbigint直接淘汰次数。
    victim_write_countbigint淘汰落盘次数。
    write_countbigint写次数。
    zero_countbigint清零次数。
    flush_countbigintflush次数。
    truncate_countbiginttruncate次数。
    storage_read_countbigint读存储次数。
    storage_write_countbigint写存储次数。
    说明 polar_stat_slru视图依赖于polar_monitor插件。其中该插件在安装PolarDB PostgreSQL版数据库后已默认存在,但需执行create extension polar_monitor命令使其生效。
  • cgroup

    您可以通过查询本文描述的视图来获取相关系统资源信息。

    • polar_stat_cgroup

      统计各类系统资源、cgroup信息。相关参数说明如下表所示:

      参数类型描述
      subtypetextcgroup类型(IO、Memory、CPU)。
      infotypetextcgroup信息。
      countbigint计数。
      说明 polar_stat_cgroup视图依赖于polar_monitor_preloadpolar_monitor插件,其中polar_monitor_preloadpolar_monitor插件在安装PolarDB PostgreSQL版数据库后已默认存在,但需分别执行create extension polar_monitor_preloadcreate extension polar_monitor命令使其生效。
    • polar_cgroup_quota
      统计各类系统资源、cgroup配额信息。相关参数说明如下表所示:
      参数类型描述
      subtypetextcgroup类型(IO、Memory、CPU)。
      infotypetextcgroup信息。
      countbigint限额带下。
      说明 polar_cgroup_quota视图依赖于polar_monitor插件,其中该插件在安装PolarDB PostgreSQL版数据库后已默认存在,但需执行create extension polar_monitor命令使其生效。