1??ASP報告簡介
? ? ? ?ASP-Active Sesion Profile (活躍會話檔案信息),ASP每秒獲取活躍會話事件,放到內存中,內存中的數據達閾值,會落盤gs_asp表中。ASP Report根據輸入的時間段與slot個數,從內存和磁盤中取數據可視化到html中。
2 生成ASP報各-GUC參數說明
ASP相關GUC參數
GUC參數? | 默認值 | 說明 |
enable_asp? ? ? ? ? ? ? ? | on | 是否開啟活躍會話信息active session profile? |
enable_asp_standby | on | 是否開啟備機ASP功能 |
asp_sample_num | 100000 | LOCAL_ACTIVE_SESSION視圖最大的樣本個數,僅sysadmin用戶可以訪問 |
asp_sample_interval | 1 | 每次采樣的間隔 |
asp_flush_interval???????? | 300 | ASP定時刷盤時間間隔 |
asp_flush_rate | 10 | 當內存中樣本個數達到asp_sample_num時,會按一定比例把內存中樣本刷新到磁盤上,asp_flash_rate為刷新比例。該參數為10時表表按10:1進行刷新。 |
asp_flush_mode | 'table' | ASP刷新到磁盤上的方式分為寫文件和寫系統表 |
asp_retention_days | 2 | 當ASP樣本寫到系統表時,該參數表示保留的最大天數 |
asp_log_filename | "asp-%Y-%m-%d_%H%M%S.log" | 當ASP寫文件時,該參數設置文件名的格式,僅sysadmin用戶可以訪問 |
3 生成ASP報告
1) 內核生成asp報告步驟:
步驟1: 用gsql方試連接數據庫,切換至postgres庫。
步驟2:輸入\a \t \o 報告路徑(/data1/asp.html)
步驟3:生成ASP報告
- 集中式:
select generate_asp_report(start_time timestamp with time zone,end_time timestamp with time zone,slot_count bigint,node_name text);
- ? 分布式:
select dbe_perf.generate_asp_report(start_time timestamp with time zone, end_time timestamp with time zone,nodename text,slot_count bigint);
參數 | 說明 | 取值范圍 |
start_time | 需要生成報告的開始時間 | 時間戳類型 |
end_time?? | 需要生成報告的結束時間 | 時間戳類型 |
slot_count???????? | 指標展示時分割的時間段的個數 | 整型: 1~9900719925474099 |
node_name | 指定生成某個節點的ASP報告 | 字符串類型 |
例如:
gaussdb=>\t \a \o /home/Ruby/asp0727.html
Output format is unaligned.
Showing only tuples.
gaussdb=> select generate_asp_report('2025-07-27 22:30:00','2025-07-27 23:00:00',2,'dn_6001');
2)tpops生成asp報告
選擇目標實例->診斷優化->性能報告->ASP報告。
?4 ASP報告優化案例分析
1)集群實際負載:
2)TOP EVENT GRAPH
?
3) Top Sessions with top Event
?
4)? Top SQL with top event
定位到SQLID,進行分析。
5 批注
ASP報告是等待事件的一張可視化的視圖,方便我們分析性能瓶頸提供參考依據。
?