GaussDB WDR分析之集群报告篇

news2024/9/30 21:31:02

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.coloradmin.cn/o/1540641.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Windows系统安装WampServer结合内网穿透实现公网访问本地服务

文章目录 前言1.WampServer下载安装2.WampServer启动3.安装cpolar内网穿透3.1 注册账号3.2 下载cpolar客户端3.3 登录cpolar web ui管理界面3.4 创建公网地址 4.固定公网地址访问 前言 Wamp 是一个 Windows系统下的 Apache PHP Mysql 集成安装环境,是一组常用来…

网络安全笔记-day7,共享文件服务器

文件共享服务器 准备阶段 打开虚拟机win2003 创建文件 D:. —share   –down   |  test1.txt   |   —up     01xxx.txt     02xxx.txt 配置IP win2003 192.168.1.10 255.255.255.0 winxp 192.168.1.20 255.255.255.0 创建共享文件夹 创建共享&#xff1…

Axure RP 9 for Mac中文激活版:原型设计工具

Axure RP 9 for Mac是一款值得设计师信赖的原型设计工具。它以其卓越的性能和稳定的运行赢得了广大用户的赞誉。 软件下载:Axure RP 9 for Mac中文激活版下载 在Axure RP 9中,您可以尽情发挥自己的设计才华,创造出独一无二的原型作品。无论是…

【MySQL】9. 内置函数

函数 1. 日期函数 获得年月日: mysql> select current_date(); ---------------- | current_date() | ---------------- | 2024-03-23 | ---------------- 1 row in set (0.00 sec)获得时分秒: mysql> select current_time(); ------------…

看完就等于拿捏浮点数在内存中的储存了

诸君又该学习了,今天我们继续来一睹浮点数的奥妙真容。 经过前面文章对整形提升相关的解释,我们都对整形和字符在内存空间上的储存已经有了大概的认知,那么现在我们就来好好讲讲浮点数在内存中的储存规则。 目录 浮点数与整形储存的不同 …

which is not functionally dependent on columns in GROUP BY clause 错误解决方法

今天遇到了which is not functionally dependent on columns in GROUP BY clause; this is incompatible with sql_modeonly_full_group_by的错误,记录一下解决方法。 该错误是因为在SQL语句中用到了聚合函数,但是聚合函数之外的字段没有全部放到group …

电脑电池健康度查询

首先使用winr 输入cmd,打开黑窗口 再出入以下代码: powercfg/batteryreport将路径中文件找到即可查看电池健康度。

软件测试(自动化测试)

1. Selenium 1.1 Selenium是什么? 用来做web自动化测试的框架。 1.2 Selenium特点 支持各种浏览器,支持各种平台,支持各种语言,有丰富的API, 1.3 工作原理 1.4 Selenium环境搭建 下载配套浏览器及驱动 这里使用Ch…

vcs编译选项--不常用

1)如何查看波形的毛刺(glitch) 参考:公众号:IC学社 需要添加仿真选项:fsdbglitch0 “值得说明的是,glitch 对 design 是非常不好的,需要规避,设计代码中应该具有检查 g…

Express:快速搭建Node.js应用的基石

🤍 前端开发工程师、技术日更博主、已过CET6 🍨 阿珊和她的猫_CSDN博客专家、23年度博客之星前端领域TOP1 🕠 牛客高级专题作者、打造专栏《前端面试必备》 、《2024面试高频手撕题》 🍚 蓝桥云课签约作者、上架课程《Vue.js 和 E…

DataV 在HTML中使用

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

[leetcode] 138. 随机链表的复制

给你一个长度为 n 的链表,每个节点包含一个额外增加的随机指针 random ,该指针可以指向链表中的任何节点或空节点。 构造这个链表的 深拷贝。 深拷贝应该正好由 n 个 全新 节点组成,其中每个新节点的值都设为其对应的原节点的值。新节点的 n…

Spring Bean加载优先级

当我们使用 ConditionalOnMissingBean / ConditionalOnBean注解去给某个 bean 注入赋予条件时,那在条件判断时我们需要确保条件判断过程所需的环境已准备好。 举个例子 下面的代码中有两个配置类,涉及两个 Bean 的注入 配置类 ConfigA 需要注入一个 A…

taro之Swiper的使用

图样&#xff1a; 往往我们需要轮播图去显示我们想要的图片之类的 这是工作的代码 <View classNametop-title><SwiperclassNamebanner-swiperinterval{3000}circularautoplay>{homeBannerList.map((item) > {return (<SwiperItem key{item.id}><View…

Linux之文件系统与软硬链接

前言 我们之前阐述的内容都是在文件打开的前提下, 但是事实上不是所有文件都是被打开的, 且大部分文件都不是被打开的(也就是文件当前并不需要被访问), 都在磁盘中进行保存. 那这些没有被(进程)打开的文件, 也是需要被管理的! 对于这部分文件核心工作之一是能够快速定位文件…

【C++】仿函数优先级队列反向迭代器

目录 一、优先级队列 1、priority_queue 的介绍 2、priority_queue 的使用 3、 priority_queue 的模拟实现 1&#xff09;priority_queue()/priority_queue(first, last) 2&#xff09;push&#xff08;x&#xff09; 3&#xff09;pop&#xff08;&#xff09; 4&#…

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

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

2024年 前端JavaScript Web APIs 第五天 笔记

5.1-BOM和延迟函数setTimeout 5.2-事件循环eventloop 1-》 3 -》2 1-》 3 -》2 5.3-location对象 案例&#xff1a;5秒钟之后自动跳转页面 <body><a href"http://www.itcast.cn">支付成功<span>5</span>秒钟之后跳转到首页</a><sc…

对话Midjourney创始人:图片仅是起步,人工智能将全面改变学习、创意和组织。

ChatGPT狂飙160天&#xff0c;世界已经不是之前的样子。 新建了人工智能中文站https://ai.weoknow.com 每天给大家更新可用的国内可用chatGPT资源 ​ 发布在https://it.weoknow.com 关注我 Midjourney 是一家神奇的公司&#xff0c;11 人改变世界&#xff0c;创造伟大的产品。…

并发编程-Synchronized介绍(结合源码和hostpot说明)

目录 一、Synchronized 概述 二、Synchronized在并发编程中解决的问题 2.1 解决原子性问题 2.1.1 问题代码 2.1.2 执行结果 2.1.3 优化代码 2.1.4 测试结果 2.1.5 优化代码分析 2.1.5.1 编译java源文件程序 2.1.5.2 查看编译文件 2.1.5.3 分析编译文件 2.2 解决可见…