首页 > 数据库 >【磐维数据库】WDR(Wordload Dignosis Report)报告

【磐维数据库】WDR(Wordload Dignosis Report)报告

时间:2024-10-24 10:09:36浏览次数:7  
标签:Dignosis cn 磐维 Wordload wdr WDR snapshot zh 节点

WDR(Wordload Dignosis Report)报告简介

WDR报告是磐维数据库的工作负载诊断报告,它基于两个不同时间点系统的性能快照数据WDR Snapshot,生成这两个时间点之间的性能报告。

WDR Snapshot的数据来源于DBE_PERF Schema内的视图。通过WDR报告,我们可以深入了解数据库在特定时间段内的运行情况,从而发现潜在的性能问题。

生成WDR报告的前提条件:WDR Snapshot启动(即参数enable_wdr_snapshot为on时),且快照数量大于等于2。

WDR Snapshot相关参数及说明

postgres=# 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 Snapshot相关参数说明
1、enable_wdr_snapshot参数 参数说明:是否开启数据库监控快照功能。 该参数属于SIGHUP类型参数,请参考表1中对应设置方法进行设置。 取值范围:布尔型。on:打开数据库监控快照功能。off:关闭数据库监控快照功能。 默认值:off 表1链接:https://docs-opengauss.osinfra.cn/zh/docs/5.0.0/docs/DatabaseReference/%E9%87%8D%E8%AE%BE%E5%8F%82%E6%95%B0.html#zh-cn_topic_0283137176_zh-cn_topic_0237121562_zh-cn_topic_0059777490_t91a6f212010f4503b24d7943aed6d846
2、wdr_snapshot_interval参数 参数说明:后台线程Snapshot自动对数据库监控数据执行快照操作的时间间隔。 该参数属于SIGHUP类型参数,请参考表1中对应设置方法进行设置。 取值范围:整型,10~60(分钟)。 默认值:1h 表1链接:https://docs-opengauss.osinfra.cn/zh/docs/5.0.0/docs/DatabaseReference/%E9%87%8D%E8%AE%BE%E5%8F%82%E6%95%B0.html#zh-cn_topic_0283137176_zh-cn_topic_0237121562_zh-cn_topic_0059777490_t91a6f212010f4503b24d7943aed6d846
3、wdr_snapshot_query_timeout 参数说明:系统执行数据库监控快照操作时,设置快照操作相关的sql语句的执行超时时间。如果语句超过设置的时间没有执行完并返回结果,则本次快照操作失败。 该参数属于SIGHUP类型参数,请参考表1中对应设置方法进行设置。 取值范围:整型,100~INT_MAX(秒)。默认值:100s 表1链接:https://docs-opengauss.osinfra.cn/zh/docs/5.0.0/docs/DatabaseReference/%E9%87%8D%E8%AE%BE%E5%8F%82%E6%95%B0.html#zh-cn_topic_0283137176_zh-cn_topic_0237121562_zh-cn_topic_0059777490_t91a6f212010f4503b24d7943aed6d846
4、wdr_snapshot_retention_days 参数说明:系统中数据库监控快照数据的保留天数。当数据库运行过程期间所生成的快照量数超过保留天数内允许生成的快照数量的最大值(保留天数的分钟值 / 自动生成时间间隔的分钟值)时,系统将每隔wdr_snapshot_interval时间间隔,清理snapshot_id最小的快照数据。该参数属于SIGHUP类型参数,请参考表1中对应设置方法进行设置。 取值范围:整型,1~8。 默认值:8 表1链接:https://docs-opengauss.osinfra.cn/zh/docs/5.0.0/docs/DatabaseReference/%E9%87%8D%E8%AE%BE%E5%8F%82%E6%95%B0.html#zh-cn_topic_0283137176_zh-cn_topic_0237121562_zh-cn_topic_0059777490_t91a6f212010f4503b24d7943aed6d846

创建WDR Snapshot

生成快照数据需参数 enable_wdr_snapshot=on。当开启enable_wdr_snapshot参数时,数据库默认每小时自动执行一次snapshot操作。在诊断问题时,也可以根据需要手动使用create_wdr_snapshot函数创建snapshot,命令如下:

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

查看WDR Snapshot

postgres=# select * from snapshot.snapshot offset 10;
 snapshot_id |           start_ts            |            end_ts             
-------------+-------------------------------+-------------------------------
          75 | 2024-07-16 20:27:47.763081+08 | 2024-07-16 20:27:50.949935+08
          76 | 2024-07-16 21:27:48.578829+08 | 2024-07-16 21:27:49.861373+08
          77 | 2024-07-16 22:27:48.659757+08 | 2024-07-16 22:27:51.023853+08
          78 | 2024-07-16 23:27:48.777153+08 | 2024-07-16 23:27:51.87062+08
          79 | 2024-07-17 00:27:49.077599+08 | 2024-07-17 00:27:50.380744+08
          80 | 2024-07-17 01:27:49.090532+08 | 2024-07-17 01:27:52.767099+08
          81 | 2024-07-17 02:27:50.065647+08 | 2024-07-17 02:27:53.767576+08
(7 rows)

创建WDR报告

1、执行如下命令,设置报告格式。\a: 不显示表行列符号, \t: 不显示列名 ,\o: 指定输出文件。
gsql> \a \t \o /home/omm/wdrTestNode.html
2、gsql客户端执行如下命令,生成HTML格式的WDR报告。 
select generate_wdr_report(begin_snap_id Oid, end_snap_id Oid, int report_type, int report_scope, int node_name ); 

# generate_wdr_report函数的参数说明:
begin_snap_id:要查看的某段时间性能的开始的snapshot的id(表snapshot.snaoshot中的snapshot_id)
end_snap_id: 结束snapshot的id,默认end_snap_id大于begin_snap_id(表snapshot.snaoshot中的snapshot_id)
report_type: 指定生成report的类型。取值范围:summary/detail/all。all即同时包含summary和detail。
report_scope: 指定生成report的范围,取值范围: cluster:集群 node:集群中某个节点。
node_name: 当report_scope指定为single node时,需要把该参数指定为对应节点的名称。当report_scope为cluster时,该值可以省略或者指定为空或NULL。 #

示例一,生成集群级别的报告: select generate_wdr_report(75,76,'all','cluster',null); #
示例二,生成某个节点的报告(node_name从pgxc_node_str()::cstring获得): select generate_wdr_report(75,76,'all','node', pgxc_node_str()::cstring); #
示例三,生成某个节点的报告(node_name从pg_node_env中查询获得): postgres=# select node_name from pg_node_env; node_name ------------------- dn_6001_6002_6003 (1 row) select generate_wdr_report(75,76,'all','node', 'dn_6001_6002_6003'); 3、关闭格式化输出 gsql> \a \t \o

WDR报告主要内容
项目描述
Database Stat(集群范围) 数据库维度性能统计信息:事务,读写,行活动,写冲突,死锁等。
Load Profile(集群范围) 集群维度的性能统计信息:CPU时间,DB时间,逻辑读/物理读,IO性能,登入登出,负载强度,负载性能表现等。
Instance Efficiency Percentages(集群/节点范围) 集群级或者节点缓冲命中率。
IO Profile(集群/节点范围) 集群或者节点维度的IO的使用情况。
Top 10 Events by Total Wait Time(节点范围) 最消耗时间的事件。
Wait Classes by Total Wait Time(节点范围) 最消耗时间的等待时间分类。
Host CPU(节点范围) 主机CPU消耗。
Memory Statistics(节点范围) 内核内存使用分布。
Time Model(节点范围) 节点范围的语句的时间分布信息。
Wait Events(节点范围) 节点级别的等待事件的统计信息。
Cache IO Stats (集群/节点范围) 用户的表、索引的IO的统计信息。
Utility status (节点范围) 复制槽和后台checkpoint的状态信息。
Object stats(集群/节点范围) 表、索引维度的性能统计信息。
Configuration settings(节点范围) 节点配置。
SQL Statistics(集群/节点范围) SQL语句各个维度性能统计:端到端时间,行活动,缓存命中,CPU消耗,时间消耗细分。
SQL Detail(集群/节点范围) SQL语句文本详情。

生成WDR报告后,我们就可以开始分析和诊断数据库的性能问题,从而进行优化。

日常快速生成WDR方法

su - omm
cd ~
touch /home/omm/WDR_`date "+%Y%m%d_%H%M%S"`.html  
gsql -d postgres -r
select * from snapshot.snapshot order by start_ts desc limit 20;
select * from pg_node_env;
\a \t \o /home/omm/WDR_`date "+%Y%m%d_%H%M%S"`.html  
select generate_wdr_report(begin_snap_id, end_snap_id, 'all', 'cluster',null);
\o \a \t

总结

WDR报告是openGauss/磐维数据库的重要性能诊断工具,它能够帮助我们深入了解数据库在特定时间段内的性能表现,从而发现潜在的性能问题并进行优化。我们在日常工作中要尽可能地使用这一利器,提升数据库的性能。

标签:Dignosis,cn,磐维,Wordload,wdr,WDR,snapshot,zh,节点
From: https://www.cnblogs.com/yuweijade/p/18499021

相关文章

  • 【磐维数据库】通过python访问磐维数据库
    安装psycopg21、下载并解压包下载网址https://opengauss.org/zh/download/解压包#tar-zxvfopenGauss-5.0.2-CentOS-x86_64-Python.tar.gz解压安装包后,会得到两个目录lib和psycopg2。lib是psycopg2依赖的libpq等C动态库文件。2、将解压后的lib和psycopg2目录拷贝到......
  • 【磐维数据库】业务无法连接-连接数限制
    连接数介绍江西移动现场应用侧在使用磐维数据库,做应用兼容改造时,发现程序连接报错,借此介绍下磐维数据库在连接限制上的主要手段。方法分三层:实例级别、数据库级别和用户级别。max_connections(全局连接数限制)参数说明:允许和数据库连接的最大并发连接数。此参数会影响Vastbase......
  • 【磐维数据库】instr函数在磐维数据库使用报错处理过程
    背景江西移动现场,应用侧在磐维数据库使用instr函数时报错,报错如下:ERROR:functioninstr(text,unknown,integer,bigint)doesnotexist环境描述出问题的环境信息OS版本:BCLinuxforEuler21.10(LTS-SP2)DB版本:panweidb3.0.0问题描述程序代码显示functioninstr不存......
  • 【磐维数据库】3.0运行"show events;"命令,引发集群主节点CoreDump
    一、环境介绍数据库PanWeiDBV2.0-S3.0.0_B01架构Intel+x86_64操作系统BCLinux-for-Euler-21.10内核4.19.90-2107.6.0.0192.8.oe1.bclinux.x86_64二、故障场景1、客户环境可以稳定复现gsql-rshowevents;\cbomcdb;--------业务库名称sh......
  • 【磐维数据库】Oracle(透明网关)访问磐维数据库(PanWeiDB)
    磐维数据库(PanWeiDB)是由中国移动基于中国本土开源数据库openGauss打造的自研数据库产品,主要面向ICT基础设施。它具有高性能、高可靠性、高安全性和高兼容性的特点,能够支持集中式、分布式、云原生、一体机等多种应用场景。目前,磐维数据库已在中国移动的多个省(区、市)公司及专业公司......
  • 磐维数据库安装提示max_process_memory must greater than问题
    很多人在个人虚拟机部署磐维测试环境时会碰上一个提示内存太少的报错,多数是因为虚拟机给的内存太少了。遇到报错也可以不用调整虚拟机内存,可以调整参数解决。报错示例如下:BACKEND]FATAL:thevaluesofmemoryoutoflimit,thedatabasefailedtobestarted,max_process_mem......
  • 磐维数据库查询结果按列展示
    磐维数据库中如何实现查询结果按列展示?类似与MySQL数据库的\G效果,可以使用\x命令,以扩展方式显示查询结果。示例如下:postgres=#\xExpandeddisplayison.postgres=#select*frompg_user;-[RECORD1]----+-------------usename|dtpusesysid|20720usecreatedb|0......
  • 磐维和sharding之用户管理
    目录概念描述测试验证一、实验环境二、实验认证1、新建个人用户在sharding层还是数据库层1.1sharding和数据库都创建1.1.1修改sharding的参数文件1.1.2在数据库层创建1.1.3用dsg用户连接数据库1.1.4重启sharding+zookeeper1.1.5用dsg用户连接库1.2数据库没有dsg用户1.2.1......
  • ptk磐维2.0 om报错
    目录适用范围问题概述问题原因解决方案适用范围ptk安装的磐维2.0问题概述近期ptk安装的磐维2.0数据库,发现gs_om这个命令执行报错。[omm@pw_1~]$gs_om-tstatus[GAUSS-50222]:Thecontentoffile/enmo/panweidb/tool/version.cfgisnotcorrect.Commitidiswro......
  • 磐维数据库自动添加/删除 分区脚本
    目录脚本功能脚本使用示例一、自动按天添加分区二、自动按天删除分区脚本功能磐维数据库自动按天添加/删除分区脚本使用示例一、自动按天添加分区1、shell脚本的内容panwei_add_partition.sh#!/bin/bash.~/.bash_profilefordbin"nlkf""nlkf1""nlkf2""nlkf3""nlk......