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報告概況資訊:
在這裡插入圖片描述
在這裡插入圖片描述
在這裡插入圖片描述
作者:怕晒的太陽
🍒如果您覺得博主的文章還不錯或者有幫助的話,請關注一下博主,如果三連點贊評論收藏就更好啦!謝謝各位大佬給予的支援!