暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

初识Mogdb第二天:WDR报告解读

原创 杨凯同学 2022-09-08
964

     作为一名Oracle DBA,在遇到性能诊断时经常使用的AWR报告,通过这份报告DBA可以较为全面的分析出数据库的性能问题所在范围,为下一步的数据库性能优化和故障诊断提供有力支撑。听说Mogdb数据库中也看到了类似的功能,那就是Mogdb的WDR报告,今天不妨一试究竟。闲话少说,直接开干。

一、开启WDR报告的snapshot收集

./gs_guc reload -N all -I all -c "enable_wdr_snapshot=on"
The gs_guc run with the following arguments: [./gs_guc -N all -I all -c enable_wdr_snapshot=on reload ].
Begin to perform the total nodes: 1.
Popen count is 1, Popen success count is 1, Popen failure count is 0.
Begin to perform gs_guc for datanodes.
Command count is 1, Command success count is 1, Command failure count is 0.

Total instances: 1. Failed instances: 0.
ALL: Success to perform gs_guc!

yk=> select name,setting from pg_settings where name like '%wdr%';
name | setting
-----------------------------+---------
enable_wdr_snapshot | on
wdr_snapshot_interval | 60
wdr_snapshot_query_timeout | 100
wdr_snapshot_retention_days | 8
(4 rows)

解释:每一个小时自动生成一个wdr,保留天数8天

二、模拟数据,主要模拟读和写

yk=> create table t8(id int, info int[]);
CREATE TABLE
yk=> insert into t8 select generate_series(1,10000),'{1,1,2,2,3,3,4,4}'::int[];
INSERT 0 10000
yk=> insert into t8 select generate_series(1,10000),'{1,1,2,2,3,3,4,4}'::int[];
INSERT 0 10000

yk=> insert into t8 select generate_series(1,1000000),'{1,1,2,2,3,3,4,4}'::int[];
INSERT 0 1000000
analyze t8;

yk=> select * from t8

yk=> select count(*) from t8;
count
---------
1020000
(1 row)

三、手工创建快照

创建snapshot

MogDB=# select create_wdr_snapshot();
create_wdr_snapshot
-----------------------------------------
WDR snapshot request has been submitted
(1 row)


MogDB=# select * from snapshot.snapshot;
snapshot_id | start_ts | end_ts
-------------+-------------------------------+-------------------------------
1 | 2022-09-07 17:55:54.01329+08 | 2022-09-07 17:55:54.471282+08
2 | 2022-09-08 08:44:21.609754+08 | 2022-09-08 08:44:22.556857+08
3 | 2022-09-08 10:20:24.677605+08 | 2022-09-08 10:20:27.517682+08
4 | 2022-09-08 11:20:25.033788+08 | 2022-09-08 11:20:26.359985+08
5 | 2022-09-08 11:32:43.150067+08 | 2022-09-08 11:32:44.297108+08
(5 rows)

查询数据库节点信息

MogDB=# select * from pg_node_env;
node_name | host | process | port | installpath | datapath | log_directory
-----------+-----------+---------+-------+-----------------+------------------+--------------------------------
dn_6001 | localhost | 1367 | 26000 | /dbms/mogdb/app | /dbms/mogdb/data | /dbms/mogdb/log/pg_log/dn_6001
(1 row)

MogDB=# \a \t \o WDR_20220908.html  ---wdr报告的路径和命名
Output format is unaligned.
Showing only tuples.
MogDB=# select generate_wdr_report(3,5,'all','node','dn_6001');
MogDB=# \o \a \t
Output format is aligned.
Tuples only is off.

四、 WDR报告解读


解读:可以看到硬件配置、数据库版本、快照的采集时间


解读:这部分是实例的效率,越接近100%,数据库运行越健康,上图Soft Parse%指标值偏小则说明存在大量硬解析,因为执行的SQL(select * from t8)是第一次执行,在Buffer中找不到。


解读:前10 的等待事件,TYPE是类型,重点关注IO_EVENT类型即可


解读:主要看%ldle,代表CPU空闲占比,越高越好,一般不能低于10%


解读:在快照期间的IO负载情况
Database requests: 即每秒IO写请求次数5、请求次数总和 也是5
Database(blocks): 即每秒写block的数量5.

解读:这个太熟悉了和oracle 的awr完全一样:SQL执行时间



解读:这部分是统计用户表的IO活动状态。


解读:这部分是用户表状态的统计信息,SQL优化最要看分析最后时间。


解读:最后这部分是Mogdb数据库参数配置信息,我认为是WDR的入口,只要了解了数据库配置的参数,才能入手一步步分析。

五、总结

    关于Mogdb的 WDR报告解读今天小试牛刀感觉还是不错的,由于场景简单、数据量读写和并发条件有限,好多知识点无法展开细说,希望以后有机会生产早日用上Mogdb再一一细说。最后祝愿Mogdb商业数据库在国产数据库地位越来越稳,市场份额占比越来越大。

最后修改时间:2022-09-08 14:50:50
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
1人已赞赏
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论