openGauss的WDR報告解讀

語言: CN / TW / HK

 

文章目錄

  • 1.執行以下SQL命令,查詢已經生成的快照信息。
  • 2.生成WDR報告。
  • 3.手工創建快照信息
  • 4.WDR涉及的數據表
  • 5.WDR報告解讀


在Oralce數據庫中,遇到性能問題,我們通常會查看有無對應時間段的快照,生成awr報告並進一步分析(AWR是Automatic Workload Repository的簡稱,中文叫着自動工作量資料檔案庫。是Oracle數據庫用於收集、管理和維護數據庫整個運行期間和性能相關統計數據的存儲倉庫,是Oracle數據庫性能調整和優化的基礎。awr收集到的數據會被定期保存到磁盤,可以從數據字典查詢以及生成性能報告。)。AWR報告整個數據庫在運行期間的現狀或者説真實狀態只有在被完整記錄下來,才是可查,可知,可比較,可推測或者説為未來性能優化調整提供支撐建議的基礎。

 

在opengauss數據庫中,也有着這樣的“awr”,它叫做——wdr。WDR是(Workload Diagnosis Report)負載診斷報告,是openGauss的工作負載診斷報告,常用於判斷openGauss長期性能問題。

前提:

生成WDR報告的前提條件是,打開參數enable_wdr_snapshot。確認當前已按照的openGauss數據庫是否打開WDR報告的參數,需要通過下圖登錄數據庫進行查詢。enable_wdr_snapshot的值為on表示打開,off表示關閉
在這裏插入圖片描述
以下介紹WDR報告的參數:

在這裏插入圖片描述
操作步驟:

1.執行以下SQL命令,查詢已經生成的快照信息。

select * from snapshot.snapshot;

snapshot.snapshot 【記錄當前系統中存儲的WDR快照信息】

在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述

2.生成WDR報告。

執行如下步驟,生成節點node級別wdr報告。
1)查詢 pgxc_node_name參數值,或者使用查詢視圖:pg_node_env。

在這裏插入圖片描述
在這裏插入圖片描述
2) \a \t \o 服務器文件路徑生成格式化性能報告

\a \t \o /home/opengauss/wdrTest.html
在這裏插入圖片描述
上述命令涉及參數説明如下:

\a:切換非對齊模式。
\t:切換輸出的字段名的信息和行計數腳註。
\o:把所有的查詢結果發送至服務器文件裏。
服務器文件路徑:生成性能報告文件存放路徑。用户需要擁有此路徑的讀寫權限。

如果不退出當前登錄gsql客户端,進行執行其他SQL,關閉格式化輸出命令:

\o \a \t

3)向性能報告wdrTest.html中寫入數據,從snapshot.snapshot視圖中選取要生成WDR報告的時間點。例如:127和128兩個時間點。

gsql -d postgres -p 6000 -r -c"select generate_wdr_report(快照id1,快照id2,‘all’,‘node’,‘pgxc_node_name參數值’);"

select generate_wdr_report(127,128,‘all’,‘node’,‘dn_6001’);

函數説明:generate_wdr_report

語法
select generate_wdr_report(begin_snap_id bigint, end_snap_id bigint, report_type cstring, report_scope cstring, node_name cstring);
選項:
begin_snap_id:查詢時間段開始的snapshot的id(表snapshot.snaoshot中的snapshot_id)
end_snap_id: 查詢時間段結束snapshot的id。默認end_snap_id大於begin_snap_id(表snapshot.snaoshot中的snapshot_id)
report_type: 指定生成report的類型。例如,summary/detail/all,其中:summary[彙總數據]/detail[明細數據]/all[包含summary和detail]
report_scope: 指定生成report的範圍,可以為cluster或者node,其中:cluster是數據庫級別的信息,node是節點級別的信息。
node_name: 當report_scope指定為node時,需要把該參數指定為對應節點的名稱。當report_scope為cluster時,該值可以省略或者指定為空或NULL。node[節點名稱]、cluster[省略/空/NULL]
在這裏插入圖片描述
4)目錄下生成對應的wdr報告,cd /home/opegauss生成報告的指定路徑進行查看。
在這裏插入圖片描述

3.手工創建快照信息

當在openGauss數據庫執行性能測試,數據庫默認每小時自動執行一次snapshot操作。生成指定時間段內的WDR報告,查詢快照視圖後選取指定開始時間的快照id,結束時間的快照id。通過函數generate_wdr_report生成wdr報告。但是有些情況,固定時間段的WDR報告,就需要使用具有sysadmin權限用户手工創建快照信息,需要執行兩次。具體操作步驟如下:

1)首先確認一下,當前的快照信息視圖snapshot.snapshot中的時間節點。
在這裏插入圖片描述
2)執行函數create_wdr_snapshot()創建快照

手工創建wdr報告快照執行語句:

select create_wdr_snapshot();

在這裏插入圖片描述

3)等待10分鐘以後再次執行函數create_wdr_snapshot(),手工創建結束快照。
在這裏插入圖片描述
4)執行操作步驟第二步:生成WDR報告,執行如下圖步驟,生成節點node級別wdr報告(其中dn_6001客户端gsql登錄數據show pgxc_node_name查詢的結果)。
在這裏插入圖片描述
在這裏插入圖片描述

4.WDR涉及的數據表

説明:WDR的數據表保存在snapshot這個schema下以snap_開頭的表,其數據來源於dbe_perf這個schema內的視圖,總共61張視圖。
在這裏插入圖片描述

在這裏插入圖片描述

5.WDR報告解讀

説明:為了使得WDR報告內容不空洞,本次在測試環境使用BenchmarkSQL5.0對openGauss數據庫進行100warehouse,100併發壓力測試。 本次的WDR報告樣例來自於此時手工創建的快照數據。

手工生成WDR報告後,通過瀏覽器查看。opengauss的wdr報告類似於oracle的awr,擁有資源消耗、等待事件、TOPSQL,以及參數設置等。

1)下圖是執行前tpcc表信息:
在這裏插入圖片描述

2)以下是手工創建的快照開始時間點:
在這裏插入圖片描述
3)開始執行benchmarksql,運行10分鐘完成後。手工再次生成wdr報告的結束快照。

在這裏插入圖片描述
4)生成wdr報告如下圖:

在這裏插入圖片描述
5)以下是解讀WDR報告

開頭介紹了一下當前wdr報告概況信息:
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
作者:怕曬的太陽
🍒如果您覺得博主的文章還不錯或者有幫助的話,請關注一下博主,如果三連點贊評論收藏就更好啦!謝謝各位大佬給予的支持!