WDR報告提供資料庫性能診斷報告,該報告基于基線性能資料和增量資料兩個版本,從性能變化得到性能報告。
客戶價值
- WDR報表是長期性能問題最主要的診斷手段。基于SNAPSHOT的性能基線,從多元度做性能分析,能幫助DBA掌握系統負載繁忙程度、各個元件的性能表現及性能瓶頸。
- SNAPSHOT也是後續性能問題自診斷和自優化建議的重要資料來源。
特性描述
WDR(Workload Diagnosis Report)基于兩次不同時間點系統的性能快照資料,生成這兩個時間點之間的性能表現報表,用于診斷資料庫核心的性能故障。
使用generate_wdr_report(…) 可以生成基于兩個性能快照的性能報告。
WDR主要依賴兩個元件:
- SNAPSHOT性能快照:性能快照可以配置成按一定時間間隔從核心采集一定量的性能資料,持久化在使用者表空間。任何一個SNAPSHOT可以作為一個性能基線,其他SNAPSHOT與之比較的結果,可以分析出與基線的性能表現。
- WDR Reporter:報表生成工具基于兩個SNAPSHOT,分析系統總體性能表現,并能計算出更多項具體的性能名額在這兩個時間段之間的變化量,生成SUMMARY 和DETAIL兩個不同級别的性能資料。如表1、表2所示。
SUMMARY級别診斷報告:
Database Stat:
主要用于評估目前資料庫上的負載,IO狀況,負載和IO是衡量TP系統最最要的特性。
包含目前連接配接到該資料庫的session,送出、復原的事務數,讀取的磁盤塊的數量,高速緩存中已經發現的磁盤塊的次數,通過資料庫查詢傳回、抓取、插入、更新、删除的行數,沖突、死鎖發生的次數,臨時檔案的使用量,IO讀寫時間等。
Load Profile:
從時間,IO,事務,SQL幾個次元評估目前系統負載的表現。
包含作業運作elapse time、CPU time,事務日品質,邏輯和實體讀的量,讀寫IO次數、大小,登入登出次數,SQL、事務執行量,SQL P80、P95響應時間等。
Instance Efficiency Percentages:
用于評估目前系統的緩存的效率。
主要包含資料庫緩存命中率。
Events:
用于評估目前系統核心關鍵資源,關鍵事件的性能。
主要包含資料庫核心關鍵事件的發生次數,事件的等待時間。
Wait Classes:
用于評估目前系統關鍵事件類型的性能。
主要包含資料核心在主要的等待事件的種類上的釋出:STATUS、LWLOCK_EVENT、LOCK_EVENT、IO_EVENT。
CPU:
主要包含CPU在使用者态、核心态、Wait IO、空閑狀态下的時間釋出。
IO Profile:
主要包含資料庫Database IO次數、Database IO資料量、Redo IO次數、Redo IO量。
Memory Statistics:
包含最大程序記憶體、程序已經使用記憶體、最大共享記憶體、已經使用共享記憶體大小等。
DETAIL級别診斷報告
Time Model:
主要用于評估目前系統在時間次元的性能表現。
包含系統在各個階段上消耗的時間:核心時間、CPU時間、執行時間、解析時間、編譯時間、查詢重寫時間、計劃生成時間、網絡時間、IO時間。
SQL Statistics:
主要用于SQL語句性能問題的診斷。
包含歸一化的SQL的性能名額在多個次元上的排序:Elapsed Time、CPU Time、Rows Returned、Tuples Reads、Executions、Physical Reads、Logical Reads。這些名額的種類包括:執行時間,執行次數、行活動、Cache IO等。
Wait Events:
主要用于系統關鍵資源,關鍵時間的詳細性能診斷。
包含所有關鍵事件在一段時間内的表現,主要是事件發生的次數,消耗的時間。
Cache IO Stats:
用于診斷使用者表和索引的性能。
包含所有使用者表、索引上的檔案讀寫,緩存命中。
Utility status:
用于診斷背景任務性能。
包含複制等背景任務的性能。
Object stats:
用于診斷資料庫對象的性能。
包含使用者表、索引上的表、索引掃描活動,insert、update、delete活動,有效行數量,表維護操作的狀态等。
Configuration settings:
用于判斷配置是否有變更。
包含目前所有配置參數的快照。
SQL detail:
顯示unique query text資訊。
WDR 診斷報告概述
⚫ WDR(Workload Diagnosis Report)基于兩次不同時間點系統的性能快照資料,生成這 兩個時間點之間的性能表現報表,用于診斷資料庫核心的性能故障。
⚫ WDR報告是長期性能問題最主要的診斷手段。基于SNAPSHOT的性能基線,從多元度做 性能分析,能幫助DBA掌握系統負載繁忙程度、各個元件的性能表現及性能瓶頸。
⚫ SNAPSHOT也是後續性能問題自診斷和自優化建議的重要資料來源。
WDR 診斷報告
⚫ WDR主要依賴兩個元件:
SNAPSHOT性能快照:性能快照可以配置成按一定時間間隔從核心采集一定量的性能資料,持 久化在使用者表空間。任何一個SNAPSHOT可以作為一個性能基線,其他SNAPSHOT與之比較 的結果,可以分析出與基線的性能表現。
WDR Reporter:報告生成工具基于兩個SNAPSHOT,分析系統總體性能表現,并能計算出更 多項具體的性能名額在這兩個時間段之間的變化量,生成SUMMARY 和DETAIL兩個不同級别 的性能資料。
WDR 報告生成
⚫ 前提條件
WDR Snasphot在啟動後(即參數enable_wdr_snapshot為on時),且快照數量大于等于2。
⚫ 操作步驟
執行如下指令查詢已經生成的快照,以擷取快照的snapshot_id。
select * from snapshot.snapshot;
(可選)執行如下指令手動建立快照。資料庫中隻有一個快照或者需要檢視在目前時間段資料 庫的監控資料,可以選擇手動執行快照操作,該指令需要使用者具有sysadmin權限。
select create_wdr_snapshot();
WDR 報告生成示例
⚫ 查詢已經生成的快照。
postgres=# select * from snapshot.snapshot;
snapshot_id | start_ts | end_ts
-------------+-------------------------------+-------------------------------
1 | 2020-09-07 10:20:36.763244+08 | 2020-09-07 10:20:42.166511+08
2 | 2020-09-07 10:21:13.416352+08 | 2020-09-07 10:21:19.470911+08
⚫ 執行如下指令将查詢到的資訊寫入性能報告中。
select generate_wdr_report(begin_snap_id Oid, end_snap_id Oid, varchar report_type, varchar report_scope, int node_name );
⚫ 生成格式化性能報告wdrTestNode.html。
postgres=# \a \t \o /home/om/wdrTestNode.html Output format is unaligned. Showing only tuples.
⚫ 關閉性能報告
postgres=# \o \a \t Output format is aligned. Tuples only is off.
#opengauss