首页 > 其他分享 >【我和openGauss的故事】openGauss的WDR报告解读

【我和openGauss的故事】openGauss的WDR报告解读

时间:2023-07-31 19:01:53浏览次数:28  
标签:node 快照 报告 wdr 解读 WDR snapshot openGauss

【我和openGauss的故事】openGauss的WDR报告解读

在Oralce数据库中,遇到性能问题,我们通常会查看有无对应时间段的快照,生成awr报告并进一步分析(AWR是Automatic Workload Repository的简称,中文叫着自动工作量资料档案库,是Oracle数据库用于收集、管理和维护数据库整个运行期间和性能相关统计数据的存储仓库,是Oracle数据库性能调整和优化的基础。awr收集到的数据会被定期保存到磁盘,可以从数据字典查询以及生成性能报告)。awr报告整个数据库在运行期间的现状或者说真实状态只有在被完整记录下来,才是可查,可知,可比较,可推测或者说为未来性能优化调整提供支撑建议的基础。

在openGauss数据库中,也有着这样的“awr”,它叫做——wdr。WDR是(Workload Diagnosis Report)负载诊断报告,是openGauss的工作负载诊断报告,常用于判断openGauss长期性能问题。

前提:

生成WDR报告的前提条件是,打开参数enable_wdr_snapshot。确认当前已按照的openGauss数据库是否打开WDR报告的参数,需要通过下图登录数据库进行查询。enable_wdr_snapshot的值为on表示打开,off表示关闭。

【我和openGauss的故事】openGauss的WDR报告解读_数据

以下介绍WDR报告的参数:

序号

参数

参数说明

取值范围

1

enable_wdr_snapshot

是否开启数据库监控快照功能

取值范围:布尔型 on: 打开数据库监控快照功能。 off: 关闭数据库监控快照功能。 默认值: off

2

wdr_snapshot_interval

后台线程Snapshot自动对数据库监控数据执行快照操作的时间间隔

取值范围: 整型,10~60(分钟) 默认值: 1h

3

wdr_snapshot_query_timeout

系统执行数据库监控快照操作时,设置快照操作相关的sql语句的执行超时时间。如果语句超过设置的时间没有执行完并返回结果,则本次快照操作失败

取值范围: 整型,100~INT_MAX(秒) 默认值: 100s

4

wdr_snapshot_retention_days

系统中数据库监控快照数据的保留天数,超过设置的值之后,系统每隔wdr_snapshot_interval时间间隔,清理snapshot_id最小的快照数据

取值范围: 整型,1~8 默认值: 8

操作步骤:

执行以下SQL命令,查询已经生成的快照信息

select * from snapshot.snapshot;

snapshot.snapshot 【记录当前系统中存储的WDR快照信息】

【我和openGauss的故事】openGauss的WDR报告解读_数据_02

【我和openGauss的故事】openGauss的WDR报告解读_取值范围_03

【我和openGauss的故事】openGauss的WDR报告解读_数据_04

生成WDR报告。执行如下步骤,生成节点node级别wdr报告。

1)查询 pgxc_node_name参数值,或者使用查询视图:pg_node_env。

【我和openGauss的故事】openGauss的WDR报告解读_数据库_05

【我和openGauss的故事】openGauss的WDR报告解读_数据_06

2) \a \t \o 服务器文件路径生成格式化性能报告

\a \t \o /home/opengauss/wdrTest.html

【我和openGauss的故事】openGauss的WDR报告解读_数据_07

参数说明

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

如果不退出当前登录gsql客户端,进行执行其他SQL,关闭格式化输出命令:

\o \a \t

3)向性能报告wdrTest.html中写入数据,从snapshot.snapshot视图中选取要生成WDR报告的时间点。例如:127和128两个时间点。

gsql -d postgres -p 6000 -r -c"select generate_wdr_report(快照id1,快照id2,‘all’,‘node’,‘pgxc_node_name参数值’);"select generate_wdr_report(127,128,'all','node','dn_6001');

函数说明:generate_wdr_report

语法 select generate_wdr_report(begin_snap_id bigint, end_snap_id bigint, report_type cstring, report_scope cstring, node_name cstring); 选项: 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,其中:summary[汇总数据]/detail[明细数据]/all[包含summary和detail] report_scope:指定生成report的范围,可以为cluster或者node,其中:cluster是数据库级别的信息,node是节点级别的信息。 node_name:当report_scope指定为node时,需要把该参数指定为对应节点的名称。当report_scope为cluster时,该值可以省略或者指定为空或NULL。node[节点名称]、cluster[省略/空/NULL]

【我和openGauss的故事】openGauss的WDR报告解读_取值范围_08

4)目录下生成对应的wdr报告,cd /home/opengauss生成报告的指定路径进行查看。

【我和openGauss的故事】openGauss的WDR报告解读_取值范围_09

手工创建快照信息

当在openGauss数据库执行性能测试,数据库默认每小时自动执行一次snapshot操作。生成指定时间段内的wdr报告,查询快照视图后选取指定开始时间的快照id,结束时间的快照id。通过函数generate_wdr_report生成wdr报告。但是有些情况,固定时间段的wdr报告,就需要使用具有sysadmin权限用户手工创建快照信息,需要执行两次。具体操作步骤如下:

1)首先确认一下,当前的快照信息视图snapshot.snapshot中的时间节点。

【我和openGauss的故事】openGauss的WDR报告解读_取值范围_10

2)执行函数create_wdr_snapshot()创建快照

手工创建wdr报告快照执行语句:

select create_wdr_snapshot();

【我和openGauss的故事】openGauss的WDR报告解读_取值范围_11

3)等待10分钟以后再次执行函数create_wdr_snapshot(),手工创建结束快照。

【我和openGauss的故事】openGauss的WDR报告解读_数据库_12

4)执行操作步骤第二步:生成wdr报告,执行如下图步骤,生成节点node级别wdr报告(其中dn_6001客户端gsql登录数据show pgxc_node_name查询的结果)。

【我和openGauss的故事】openGauss的WDR报告解读_数据库_13

【我和openGauss的故事】openGauss的WDR报告解读_数据_14

WDR涉及的数据表

说明

WDR的数据表保存在snapshot这个schema下以snap_开头的表,其数据来源于dbe_perf这个schema内的视图,总共61张视图。

【我和openGauss的故事】openGauss的WDR报告解读_取值范围_15

【我和openGauss的故事】openGauss的WDR报告解读_取值范围_16

WDR报告解读

说明

为了使得WDR报告内容不空洞,本次在测试环境使用BenchmarkSQL5.0对openGauss数据库进行100warehouse,100并发压力测试。本次的WDR报告样例来自于此时手工创建的快照数据。

手工生成WDR报告后,通过浏览器查看。openGauss的wdr报告类似于oracle的awr,拥有资源消耗、等待事件、TOPSQL,以及参数设置等。

1)下图是执行前tpcc表信息:

【我和openGauss的故事】openGauss的WDR报告解读_取值范围_17

2)以下是手工创建的快照开始时间点:

【我和openGauss的故事】openGauss的WDR报告解读_数据_18

3)开始执行benchmarksql,运行10分钟完成后。手工再次生成wdr报告的结束快照。

【我和openGauss的故事】openGauss的WDR报告解读_数据库_19

4)生成wdr报告如下图:

【我和openGauss的故事】openGauss的WDR报告解读_取值范围_20

标签:node,快照,报告,wdr,解读,WDR,snapshot,openGauss
From: https://blog.51cto.com/u_16191492/6911670

相关文章

  • 【我和openGauss的故事】openGauss易知易会的几个实用特性
    【我和openGauss的故事】openGauss易知易会的几个实用特性使用openGauss已经有很长一段时间了,本文将介绍几个简单易用的数据库特性。单列显示整行数据where比较列合并独立写布尔列using关键字domain单列显示整行数据首先我们准备测试数据表:createtableusers(idint,nametext,ema......
  • 祝贺!openGauss社区技术委员会主席李国良当选2023 IEEE FELLOW
    祝贺!openGauss社区技术委员会主席李国良当选2023IEEEFELLOW[openGauss](javascript:void(0);)2022-11-2917:56发表于广东近日,IEEE(InstituteofElectricalandElectronicEngineers)公布了2023年度Fellow名单,全球共有319位学者入选,华人学者占104位(约占总人数的31%)。其中,openGa......
  • openGauss获2022年度创新产品奖!
    openGauss获2022年度创新产品奖![openGauss](javascript:void(0);)2022-12-2920:46发表于广东喜讯openGauss企业级开源数据库获IT1682022年度创新产品奖!获奖理由开源社区是openGauss的重要创新平台,提供openGauss与开发者、用户、产业伙伴联接的桥梁。openGauss以社区为依托,联合......
  • 从源码解读Mysql 5.7性能和数据安全性的提升
    下面我们从源码来分析mysql的事务提交以及事务在何时将binlog复制到从库的。MYSQL_BIN_LOG::ordered_commit,这个是事务在binlog阶段提交的核心函数,通过该函数,实现了事务日志写入binlog文件,以及触发dump线程将binlog发送到slave,在最后的步骤,将事务设置为提交状态。我们来分析MYSQL_B......
  • openGauss学习笔记-26 openGauss 高级数据管理-约束
    openGauss学习笔记-26openGauss高级数据管理-约束约束子句用于声明约束,新行或者更新的行必须满足这些约束才能成功插入或更新。如果存在违反约束的数据行为,行为会被约束终止。约束可以在创建表时规定(通过CREATETABLE语句),或者在表创建之后规定(通过ALTERTABLE语句)。约束可......
  • ACM图灵大会开幕,王海峰解读文心大模型3.5最新进展
    7月28日-30日,顶级学术会议ACM中国图灵大会在武汉举办,围绕“通用智能,人机共生”主题,图灵奖得主、中国科学院院士、企业代表等与会探讨尖端技术及人工智能发展,展望计算科学未来。百度首席技术官、深度学习技术及应用国家工程研究中心主任王海峰解读文心大模型的核心技术,阐述人工智能......
  • 论文解读|进一步融合:体积融合中6D姿态估计的多对象推理
    原创|文BFT机器人01背景机器人等智能设备需要从它们的车载视觉系统中获得高效的基于物体的场景表示,以解释接触、物理和遮挡。已识别的精确对象模型将与未识别结构的非参数重建一起发挥重要作用。本文提出了一个系统用于估计实时的接触和遮挡的精确姿态。从单个RGBD视图中提出三......
  • IJCAI 2023 | 腾讯优图实验室入选论文解读,含小样本学习方法、玻璃物体分割、RSI变化检
    前言 近日,IJCAI2023(InternationalJointConferenceonArtificialIntelligence)国际人工智能联合大会公布了录用结果。本届会议共有4566篇投稿,接收率为15%。作为当前全球最负盛名的AI学术会议之一,IJCAI将于今年8月在澳门举行。本文转载自腾讯优图仅用于学术分享,若侵权请联......
  • openGauss学习笔记-25 openGauss 聚集函数
    openGauss学习笔记-25openGauss聚集函数25.1sum(expression)描述:所有输入行的expression总和。返回类型:通常情况下输入数据类型和输出数据类型是相同的,但以下情况会发生类型转换:对于SMALLINT或INT输入,输出类型为BIGINT。对于BIGINT输入,输出类型为NUMBER。对于浮点数输......
  • 7大openGauss商业版发布,共推规模落地行业核心场景
    openGauss商业版发布了很多产品,是基于openGauss推出商业发行版目前海量数据库Vastbase表现最佳,一直是TOP1众所周知,opengauss起源于postgresql,在此基础上做了改良海量数据库从postgresql就已经开始做商业版,一直做到opengauss,经验最丰富于此同时,南大通用也是拥有20......