WDR Snapshot生成性能报告

    WDR Snasphot在启动后(即参数enable_wdr_snapshot为on时),且快照数量大于等于2。

    1. 执行如下命令查询已经生成的快照,以获取快照的snapshot_id。

    2. (可选)执行如下命令手动创建快照。数据库中只有一个快照或者需要查看在当前时间段数据库的监控数据,可以选择手动执行快照操作,该命令需要用户具有sysadmin权限。

    3. 执行如下步骤生成性能报告。

      1. 执行如下命令生成格式化性能报告文件。

        上述命令涉及参数说明如下:

        • \a:切换非对齐模式。
        • \t:切换输出的字段名的信息和行计数脚注。
        • \o:把所有的查询结果发送至服务器文件里。
        • 服务器文件路径:生成性能报告文件存放路径。用户需要拥有此路径的读写权限。
      2. 执行如下命令将查询到的信息写入性能报告中。

        1. select generate_wdr_report(begin_snap_id bigint, end_snap_id bigint, report_type cstring, report_scope cstring, node_name cstring);

        命令中涉及的参数说明如下。

        表 1 generate_wdr_report函数参数说明

      3. 执行如下命令关闭输出选项及格式化输出命令。

    4. 根据需要查看WDR报告内容。

      表 2 WDR报表主要内容

      项目

      描述

      Database Stat(数据库范围)

      数据库维度性能统计信息:事务,读写,行活动,写冲突,死锁等。

      Load Profile(数据库范围)

      Instance Efficiency Percentages(数据库/节点范围)

      数据库级或者节点Buffer Hit(缓冲命中率),Effective CPU(CPU使用率),WalWrite NoWait(获取Wal Buffer成功率),Soft Parse(软解析率),Non-parse CPU(CPU非解析时间比例)。

      Top 10 Events by Total Wait Time(节点范围)

      最消耗时间的事件。

      Wait Classes by Total Wait Time(节点范围)

      最消耗时间的等待事件分类。

      Host CPU(节点范围)

      主机CPU消耗。

      Memory Statistics(节点范围)

      内核内存使用分布。

      Object stats(节点范围)

      表,索引维度的性能统计信息。

      Database Configuration(节点范围)

      节点配置。

      SQL Statistics(节点范围)

      SQL语句各个维度性能统计:端到端时间,行活动,缓存命中,CPU消耗,时间消耗细分。

      SQL语句文本详情。

    1. --查询已经生成的快照。
    2. postgres=# select * from snapshot.snapshot;
    3. snapshot_id | start_ts | end_ts
    4. -------------+-------------------------------+-------------------------------
    5. 1 | 2020-09-07 10:20:36.763244+08 | 2020-09-07 10:20:42.166511+08
    6. 2 | 2020-09-07 10:21:13.416352+08 | 2020-09-07 10:21:19.470911+08
    7. (2 rows)
    8. postgres=# \a \t \o /home/om/wdrTestNode.html
    9. Showing only tuples.
    10. --向性能报告wdrTestNode.html中写入数据。
    11. postgres=# select generate_wdr_report(1, 2, 'all', 'node', 'dn');
    12. --关闭性能报告wdrTestNode.html
    13. postgres=# \o
    14. --生成格式化性能报告wdrTestCluster.html
    15. postgres=# \o /home/om/wdrTestCluster.html
    16. --向格式化性能报告wdrTestCluster.html中写入数据。
    17. postgres=# select generate_wdr_report(1, 2, 'all', 'cluster');
    18. --关闭性能报告wdrTestCluster.html
    19. postgres=# \o \a \t