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.