GaussDB WDR分析之集群报告篇

AWR报告目前已经成为Oracle DBA分析问题,定位故障最为重要的报告,阅读与分析AWR报告的技能也是Oracle DBA必备的技能。国产数据库为了提高运维便捷性,都在做类似Oracle AWR报告的模仿,只不过由于指标体系不够完善,因此其“AWR报告”大多数只是一个摆设,除了TOP SQL功能外,并不能给运维带来更大的帮助。

GaussDB的可观测性指标做得相当不错,指标内容很丰富,指标的指向性也相当不错,而要做好“AWR报告”的基础就是这些准确而丰富的指标。基于这一点,我对GaussDB WDR报告的期待还是有点高的。下面我带着大家来浏览一下GaussDB的WDR报告,看看这个报告能否满足DBA日常运维分析数据库性能与故障的需要。

GaussDB的WDR报告全称是工作负载诊断报告,不过在TPOPS里被称为“性能报告”,我觉得“性能报告”不够严谨,不过如果用“工作负载诊断报告”又有点不够高大上。根据GaussDB分布式数据库的特点,这个报告分为三种类别:集群、CN节点和DN节点。这三种类型的工作负载放在一起又比较乱,分为三种格式是比较合适的,这方面GaussDB的设计还是比较符合DBA的习惯的,不过我也在思考分布式数据库的“AWR报告”是不是像PolarDB一样做成单文件多页的更加易读。不过对于GaussDB这样的可能会有很多个节点的分布式数据库,如果整个集群生成一份报告,也有一些副作用,一份报告生成的时间可能会比较长,而且有时候我们并不需要整个集群所有节点的报告。    

今天因为时间关系,我先以集群报告为主线给大家介绍一下WDR都包含了哪些内容。因为报告的内容比较多,因此我们将略去一些平时不大关注的内容。

 

Database Stat我原本想略去的,不过里面还是有一些有价值的信息的,包括各个数据库的Tuple、blk hit等信息对于DBA用来了解数据库级别的总体访问性能还是有价值的。

Gaussd的Load Profile和Oracle有点像,不过缺少了关于SQL解析的相关数据,实际上高斯数据库里是有相关指标的,不知道为什么没有收录进来。WDR报告中的Load Profile在指标选取上有点刻意学习Oracle了,实际上GaussDB的负载指标与Oracle有较大的不同,可以提供比Oracle还丰富的负载信息,包括select /delete/update/insert/ddl/dcl等的负载信息,如果能把这些内容收录进来就更好了。

在负载文件后面提供的P80/P95 sql响应时间的数据,这是十分好的,特别是对于一些交易类系统,这两个指标便于发现系统中的SQL性能是否存在问题。   

这个报告中的命中率和IO PROFILE明显有点敷衍了,估计很少有DBA能够在这些指标中看出系统到底有啥问题。以我对GaussDB的了解都知道,在这里可以显示的数据可以翻好几倍。

随后是TOP SQL的报告,说实在的GaussDB的SQL报告内容还是不错的,十分详尽,除了TOP SQL的维度分解十分全面外,每条SQL的执行指标分解也比较全面。特别是后面sort/hash的详情分解对于一些复杂SQL的性能问题分析,是一目了然的。 

Cache IO Stats是Oracle没有的内容,针对TOP OBJECT的缓冲命中情况进行分析。这对于发现shared_buffers设置是否过小,以及某些数据是否需要预热还是比较有用的。通过对某些对象Cache IO的状态也可以为解释某条SQL为什么会在执行计划没有变化的情况下,执行时间变长的某种原因。

Object Stats相当于Oracle的Top Segments,用于发现某个对象存在的问题有一定的价值。维度划分也比较详细,应用开发商应该能够从中发现很多有价值的信息。

至此看到的WDR报告的内容虽然说存在一定的遗憾,不过总体还是不错的。可惜的是看到这里报告也到了结尾,似乎有点意犹未尽,作为一个DBA,我还没有看到一些我特别想看到的东西。    

这份报告如果用于性能分析,那么一些关键指标的数据依然是十分需要的,可惜这里没有。GaussDB的WDR报告中把更多的细节留在CN节点的报告中,集群报告似乎过于简单了。即使细节可以从CN节点的报告中获得,在集群的报告里,还是缺少了一些十分重要的信息,目前从GaussDB的可观测性指标中,这些数据都是可以十分轻松地获取到的,要想加在报告里并不困难。我从一个DBA的角度列举一下我希望在WDR集群报告里想看到但是没看到的数据:

1)集群的拓扑信息,CMS/CN/DN/GTM/ETCD等的基本信息,基本健康状态等。

2)系统关键指标详细清单(集群汇总信息)。

3)系统关键目录的使用情况(各节点数据目录/日志目录)。

4)全局事务的总体情况。

5)报告时间区间内的数据库锁冲突情况。

6)SEQUENCE的使用情况。

7)复制组与RTO/RPO情况。

8)集群负载均衡性,集群中各个CN节点的负载是否均衡。集群资源使用均衡性(CPU/IO/内存/网络)。

今天只是分析了一下集群的WDR报告,还有一些信息会在CN/DN的报告中看到。在没有分析CN/DN节点的WDR之前,我先不做总体的评价,等CN/DN报告分析结束后再来做最后的点评吧。

 

本文内容来自于徐戟(白鳝)老师,南京基石数据技术有限责任公司技术总监。曾供职于DEC深圳研发中心、赛格计算机有限公司、长天集团、联想金融事业部等。在软件开发、系统运维、信息系统优化、信息系统国产化替代等领域从事技术研究近30年,曾主持开发了国内首套电信级联机实时计费系统、国内首套三检合一的检验检疫管理系统、银行综合大前置平台(IPP)等大型系统。著有《Oracle RAC日记》、《Oracle DBA优化日记》和《DBA的思想天空》等技术专著。深圳市鲲鹏产业联盟高级顾问,Oracle ACE,POSTGRESQL ACE DIRECTOR。 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/284349.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

每日一题——LeetCode2549.统计桌面上的不同数字

方法一 模拟 维护一个数组arr&#xff0c;初始值为n,每次循环将arr[i] % j(1<j<n) 如果结果为1则将j加入&#xff0c; 最后将arr转为Set集合去重&#xff0c;Set的长度就是答案 var distinctIntegers function(n) {let arr[]arr.push(n)for(let i0;i<arr.length;i…

Spring Boot1

SpringBoot概述 Spring Boot是Spring提供的一个子项目&#xff0c;用于快速构建Spring应用程序 SpringBoot特性 起步依赖 本质上就是一个Maven坐标&#xff0c;整合了完成一个功能所需要的所有坐标 自动配置 遵循约定大于配置的原则&#xff0c;再boot程序启动后&#xff0…

阿里云4核16G服务器价格26.52元1个月、149.00元半年,ECS经济型e实例

阿里云4核16G服务器优惠价格26.52元1个月、79.56元3个月、149.00元半年&#xff0c;配置为阿里云服务器ECS经济型e实例ecs.e-c1m4.xlarge&#xff0c;4核16G、按固定带宽 10Mbs、100GB ESSD Entry系统盘&#xff0c;活动链接 aliyunfuwuqi.com/go/aliyun 活动链接打开如下图&a…

zookeeper快速入门(合集)

zookeeper作为一个分布式协调框架&#xff0c;它的创建就是为了方便或者简化分布式应用的开发。除了服务注册与发现之外&#xff0c;它还能够提供更多的功能&#xff0c;但是对于入门来说&#xff0c;看这一篇就够了。后续会讲zookeeper的架构设计与原理&#xff0c;比如zookee…

Docker入门到实践之环境配置

Docker入门到实践之环境配置 docker 环境安装 Ubuntu/Debian: sudo apt update sudo apt install docker.ioCentOS/RHEL: sudo yum install dockerArch Linux: sudo pacman -S docker如果未安装成功&#xff0c;或者env的path未设置成功&#xff0c;运行时会报错 Bash: Do…

怎么拆解台式电脑风扇CPU风扇的拆卸步骤-怎么挑

今天我就跟大家分享一下如何选购电脑风扇的知识。 我也会解释一下机箱散热风扇一般用多少转。 如果它恰好解决了您现在面临的问题&#xff0c;请不要忘记关注本站并立即开始&#xff01; 文章目录列表&#xff1a;大家一般机箱散热风扇都用多少转&#xff1f; 机箱散热风扇选择…

力扣501 二叉搜索树中的众数 Java版本

文章目录 题目描述代码使用非递归的方法使用递归的方法并且遍历的同时统计众数 题目描述 给你一个含重复值的二叉搜索树&#xff08;BST&#xff09;的根节点 root &#xff0c;找出并返回 BST 中的所有 众数&#xff08;即&#xff0c;出现频率最高的元素&#xff09;。 如果…

web自动化--元素定位之xpath和css

元素定位 xpath绝对路径相对路径案例xpath策略&#xff08;路径&#xff09;案例xpath策略&#xff08;层级、扩展&#xff09;属性层级与属性层级与属性拓展层级与属性综合 csscss选择器&#xff08;id、类、标签、属性&#xff09;id选择器类选择器标签选择器属性选择器案例-…

基于springboot+vue的旅游推荐系统

博主主页&#xff1a;猫头鹰源码 博主简介&#xff1a;Java领域优质创作者、CSDN博客专家、阿里云专家博主、公司架构师、全网粉丝5万、专注Java技术领域和毕业设计项目实战&#xff0c;欢迎高校老师\讲师\同行交流合作 ​主要内容&#xff1a;毕业设计(Javaweb项目|小程序|Pyt…

亚稳态及其解决办法

异步电路 亚稳态 亚稳态亚稳态的产生原因什么是同步异步信号怎么消除亚稳态 亚稳态 在数字电路中&#xff0c;每一位数据不是1&#xff08;高电平&#xff09;就是0&#xff08;低电平&#xff09;。当然对于具体的电路来说&#xff0c;并非1&#xff08;高电平&#xff09;就是…

Flutter学习10 - Json解析与Model使用

对于网络请求返回的 Json 数据&#xff0c;一般会进行如下解析&#xff1a; 将 Json String 解析为 Map<String, dynamic>将 Json String 解析为 Dart Model 发起一个返回 Json String 的网络请求 import package:http/http.dart as http;void main() {_doGet(); }_do…

初始Java篇(JavaSE基础语法)(2)(逻辑控制)

个人主页&#xff08;找往期文章包括但不限于本期文章中不懂的知识点&#xff09;&#xff1a;我要学编程(ಥ_ಥ)-CSDN博客 目录 逻辑控制 顺序结构 分支结构 if语句 switch 语句 循环结构 while 循环 for 循环 do while 循环 输入输出 输出到控制台 从键盘输入 …

深度学习 tablent表格识别实践记录

下载代码&#xff1a;https://github.com/asagar60/TableNet-pytorch 下载模型&#xff1a;https://drive.usercontent.google.com/download?id13eDDMHbxHaeBbkIsQ7RSgyaf6DSx9io1&exportdownload&confirmt&uuid1bf2e85f-5a4f-4ce8-976c-395d865a3c37 原理&#…

Ubuntu安装教程——Desktop版本(细致入微的操作)

前言 首先我们准备Ubuntu的镜像文件 可以去Ubuntu的官方网站进行下载 https://ubuntu.com/download/desktop#get-ubuntu ubuntu-22.04.4-desktop-amd64.iso 一、安装Ubuntu桌面版操作系统 安装Ubuntu的操作系统的位置&#xff0c;方便管理和移动操作系统内的文件 使用镜像文…

pytest之统一接口请求封装

pytest之统一接口请求封装 pytest的requests_util.pyrequests_util.py 接口自动化测试框架的封装yaml文件如何实现接口关联封装yaml文件如何实现动态参数的处理yaml文件如何实现文件上传有参数化时候&#xff0c;怎么实现断言yaml的数据量大怎么处理接口自动化框架的扩展&#…

Qt播放音乐代码示例

主界面 点击play按钮播放或暂停音乐&#xff0c;拖动进度条&#xff0c;音乐对应播放。 QWidget window;QPushButton* playButton new QPushButton("Play");// Qt 播放音乐// 创建 QMediaPlayer 对象QMediaPlayer* player new QMediaPlayer;// 指定音频文件的路径…

DataV 在HTML中使用

一&#xff1a;什么是DataV 介绍 | DataV (jiaminghi.com) 组件库基于Vue &#xff08;React版 (opens new window)&#xff09; &#xff0c;主要用于构建大屏&#xff08;全屏&#xff09;数据展示页面即数据可视化&#xff0c;具有多种类型组件可供使用&#xff1a;…

鸿蒙一次开发,多端部署(九)应用市场首页

本小节将以应用市场首页为例&#xff0c;介绍如何使用自适应布局能力和响应式布局能力适配不同尺寸窗口。 页面设计 一个典型的应用市场首页的UX设计如下所示。 观察应用市场首页的页面设计&#xff0c;不同断点下的页面设计有较多相似的地方。 据此&#xff0c;我们可以将页…

【机器学习】决策树学习下篇(详解)

引言 在当今数据驱动的时代&#xff0c;机器学习技术已成为解决复杂问题不可或缺的工具。其中&#xff0c;决策树学习作为一种基础且强大的算法&#xff0c;广泛应用于各种领域&#xff0c;包括但不限于金融风控、医疗诊断、客户关系管理等。决策树以其简单直观、易于理解和实…

C++面向对象三大特征-----继承(详细版)

目录 继承 一、继承的基础介绍 普通版网页和继承版网页的区别 语法 二、继承方式 三种继承方式 三、继承中的对象模型 四、继承中构造和析构函数 五、继承同名成员的处理方式 访问同名成员&#xff1a; 作用域写法&#xff1a; 六、继承同名静态成员的处理方式 访问…