本章節主要介紹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