openGauss如何生成WDR报告,必须要掌握的性能诊断工具

功能简介

WDR 报告提供数据库性能诊断报告,WDR Workload Diagnosis Report 的缩写。基于两次不同时间点系统的性能快照数据,生成这两个时间点之间的性能表现报表,用于诊断数据库内核的性能故障。

  • WDR报表是长期性能问题最主要的诊断手段。基于SNAPSHOT的性能基线,从多维度做性能分析,能帮助DBA掌握系统负载繁忙程度、各个组件的性能表现及性能瓶颈。
  • SNAPSHOT也是后续性能问题自诊断和自优化建议的重要数据来源。

公众号:霸王龙的日常
专注分享实用的项目实战经验

操作开始

1 以 omm 用户登录数据库 postgres

gsql -d postgres -p 26000 -r

2 查看 enable_wdr_snapshot 的值

生成 WDR 报告的前提条件是,需要打开参数 enable_wdr _snapshot

**参数说明:**是否开启数据库监控快照功能。

**取值范围:**布尔型

  • on:打开数据库监控快照功能。
  • off:关闭数据库监控快照功能。

在这里,我给大家介绍两种查看方法。

  • 方法1:
openGauss=# show enable_wdr_snapshot;

image.png外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

  • 方法2:
openGauss=# select name ,setting from pg_settings where name = 'enable_wdr_snapshot';

image.png

3 设置 enable_wdr_snapshot

openGauss=# alter system set enable_wdr_snapshot=on;

4 查询当前存在的快照。

openGauss=# select * from snapshot.snapshot;

image.png

5 若当前只有一个快照,可以再创建一个新快照。

注:

WDR 报告是基于过去两个快照生成的。而当前只有一个快照,所以这里创建一个新快照进行演示。

openGauss=# select create_wdr_snapshot();

image.png

6 查询当前存在的快照,确保新快照已经生成。

openGauss=# select * from snapshot.snapshot;

image.png

7 利用最近的两个快照,生成一份 WDR 报告

openGauss=# \a \t \o wdr20240201.html
openGauss=# select generate_wdr_report(1, 2, 'all', 'node', pgxc_node_str()::cstring);

image.png

8 退出 gsql,查看生成的 WDR 报告。

image.png

9 下载 wdr20240201.html 到本地

使用浏览器打开,可查看 Top 10 等待事件 和 Top SQL 信息等其他统计项进行分析。

image.png

image.png

10 拓展

此外,我们还可以设置系统中数据库监控快照数据的保留天数和执行快照操作的时间间隔

10.1 wdr_snapshot_retention_days

**参数说明:**系统中数据库监控快照数据的保留天数。当数据库运行过程期间所生成的快照量数超过保留天数内允许生成的快照数量的最大值(保留天数的分钟值 / 自动生成时间间隔的分钟值)时,系统将每隔 wdr_snapshot_interval 时间间隔,清理 snapshot_id 最小的快照数据。

该参数属于SIGHUP类型参数。

**取值范围:**整型,1~8。

默认值:8

## 查看 wdr_snapshot_retention_days 当前值
openGauss=# show wdr_snapshot_retention_days;
## 设置 wdr_snapshot_retention_days 值为7天
openGauss=# ALTER SYSTEM SET wdr_snapshot_retention_days TO 7;
## 再次查看 wdr_snapshot_retention_days 当前值
openGauss=# show wdr_snapshot_retention_days;

image.png

10.2 wdr_snapshot_interval

**参数说明:**后台线程Snapshot自动对数据库监控数据执行快照操作的时间间隔。

该参数属于SIGHUP类型参数

**取值范围:**整型,10~60(分钟)。

默认值:1h

## 查看 wdr_snapshot_interval 当前值
openGauss=# show wdr_snapshot_interval;
## 设置 wdr_snapshot_interval 值为 30 分钟
openGauss=# ALTER SYSTEM SET wdr_snapshot_interval TO 30;
## 再次查看 wdr_snapshot_interval 当前值
openGauss=# show wdr_snapshot_interval;

image.png

image.png

  • 12
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值