WDR Snapshot生成性能报告
基于WDR Snapshot数据表汇总、统计,生成性能报告。
前提条件
WDR Snasphot在启动后(即参数enable_wdr_snapshot为on时),且快照数量大于等于2。
操作步骤
执行如下命令查询已经生成的快照,以获取快照的snapshot_id。
select * from snapshot.snapshot;
(可选)执行如下命令手动创建快照。数据库中只有一个快照或者需要查看在当前时间段数据库的监控数据,可以选择手动执行快照操作,该命令需要用户具有sysadmin权限。
select create_wdr_snapshot();
执行如下步骤生成性能报告。
执行如下命令生成格式化性能报告文件。
\a \t \o 服务器文件路径
上述命令涉及参数说明如下:
- \a:切换非对齐模式。
- \t:切换输出的字段名的信息和行计数脚注。
- \o:把所有的查询结果发送至服务器文件里。
- 服务器文件路径:生成性能报告文件存放路径。用户需要拥有此路径的读写权限。
执行如下命令将查询到的信息写入性能报告中。
select generate_wdr_report(begin_snap_id Oid, end_snap_id Oid, varchar report_type, varchar report_scope, int node_name );
命令中涉及的参数说明如下。
表 1 generate_wdr_report函数参数说明
执行如下命令关闭输出选项及格式化输出命令。
\o \a \t
根据需要查看WDR报告内容。
表 2 WDR报表主要内容
数据库级或者节点Buffer Hit(缓冲命中率),Effective CPU(CPU使用率),WalWrite NoWait(获取Wal Buffer成功率),Soft Parse(软解析率),Non-parse CPU(CPU非解析时间比例)。
示例
--查询已经生成的快照。
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
(2 rows)
--生成格式化性能报告wdrTestNode.html。
postgres=# \a \t \o /home/om/wdrTestNode.html
Output format is unaligned.
Showing only tuples.
--向性能报告wdrTestNode.html中写入数据。
postgres=# select generate_wdr_report(1, 2, 'all', 'node', 'dn');
--关闭性能报告wdrTestNode.html。
postgres=# \o
--生成格式化性能报告wdrTestCluster.html。
postgres=# \o /home/om/wdrTestCluster.html
--向格式化性能报告wdrTestCluster.html中写入数据。
postgres=# select generate_wdr_report(1, 2, 'all', 'cluster', '');
--关闭性能报告wdrTestCluster.html。
postgres=# \o \a \t
Output format is aligned.
Tuples only is off.