GaussDB WDR报告分析

news2025/1/11 16:57:28

标题

  • 问题描述
  • 问题现象
  • 告警
  • 业务影响
  • 原因分析
  • 处理方法
    • 步骤 1
    • 步骤 2
    • 步骤 3
    • 步骤 4
    • 步骤 6
    • 步骤 7
    • 步骤 8
    • 步骤9
    • 步骤 10
    • 步骤 11
    • 步骤 12

问题描述

CPU使用率高。

问题现象

出现CPU使用率超过阈值,CPU使用率快速上涨或短时间持续较高水平等现象。

告警

CPU使用率告警。

业务影响

CPU使用率高集群响应变慢。

原因分析

  1. 期间业务压力增大导致。
  2. 出现CPU耗时较多的SQL。

处理方法

步骤 1

查看监控是某个节点的CPU高还是集群整体CPU高,如果是整体CPU高生成集群级别wdr报告,如果是某个节点则生成节点级wdr报告。

步骤 2

首先查看当前已有的wdr报告快照。

select * from snapshot.snapshot order by start_ts desc;

步骤 3

生成wdr报告需要两个snapshot_id,根据需要对比的两个时间段选取对应的snapshot_id,调整输出格式,gsql界面输入:
\a \t \o + 生成文件名(html文件)

步骤 4

如果是要生成节点级的报告则执行:

select generate_wdr_report(snapshot_id1, snapshot_id2,all, ‘node’, 节点名称)

如果要生成集群级别报告则执行

select generate_wdr_report(snapshot_id1, snapshot_id2,all, ‘cluster’)

其中snapshot_id1和snapshot_id2按照时间从小到大的顺序写入上面分析出来的要生成报告的两个id,节点名称可以通过登录到问题节点执行show pgxc_node_name获取。
对应节点级别报告主要关注Top 10 Events by Total Wait Time和SQL ordered by CPU Time部分,集群级别主要关注SQL ordered by CPU Time部分,在wdr报告中搜索即可。
在这里插入图片描述
在这里插入图片描述

步骤 6

CPU使用率较低期间的wdr报告和较高期间的wdr报告个一份,这里已节点级别为例,集群级别只需要按照SQL ordered by CPU Time部分分析,分析方式一样。

步骤 7

Top 10 Events by Total Wait Time部分包含两个快照期间的主要等待事件,可以进行大致分析是否存在大量CPU耗时较高的等待事件例如文件数据读取,快照期间主要等待事件,如果通过对比发现CPU高期间的文件读事件明显变多,则说明此期间SQL执行读取数据上上涨导致的CPU耗时上涨。如果是各项等待事件都有一定幅度上涨则可能是集群压力上涨导致,具体是那一部分SQL则需要分析SQL ordered by CPU Time部分。

步骤 8

对比两份报告SQL ordered by CPU Time部分的CPU Time(us)差异,一般对比前10个即可,这里介绍一下此部分的主要构成。

  • Unique SQL Id:对应unique_sql_id,可以通过此id去数据库查询使用此模板的SQL的其他数据,例如通过summary_statement查询总体语句的调用情况。
  • Node Name:节点名称。
  • User Name:用户名。
  • CPU Time(us):两个快照期间的CPU耗时Calls:两个快照期间的语句调用次数。
  • Min Elapse Time(us):SQL在内核内的最小运行时间,注意这是整体的最小解析时间不是此快照期间的最小。
  • Max Elapse Time(us):SQL在内核内的最大运行时间,注意这是整体的最大解析时间不是此快照期间的最小。
  • Total Elapse Time(us):两个快照期间此语句的SQL在内核内的总运行时间时间。
  • Avg Elapse Time(us):两个快照期间此语句的SQL在内核内的平均运行时间时间。
  • Returned Rows:两个快照期间此语句的SELECT返回的结果集行数。
  • Tuples Read:两个快照期间访问的元组数量。
  • Tuples Affected:两个快照期间Insert/Update/Delete行数。
  • Logical Read:两个快照期间的逻辑读数。
  • Physical Read:两个快照期间的物理读数。
  • Data IO Time(us):两个快照期间IO上的时间花费。
  • Sort Count:两个快照期间的排序执行的次数。
  • Sort Time(us):两个快照期间的排序执行的时间。
  • Sort Mem Used(KB):两个快照期间的排序过程中使用的work memory大小(单位:KB)。
  • Sort Spill Count:两个快照期间的排序过程中,若发生落盘,写文件的次数。
  • Sort Spill Size(KB):两个快照期间的排序过程中,若发生落盘,使用的文件大小(单位:KB)。
  • Hash Count:两个快照期间的hash执行的次数。
  • Hash Time(us):两个快照期间的hash执行的时间(单位:微秒)。
  • Hash Mem Used(KB):两个快照期间的hash过程中使用的work memory大小(单位:KB)。
  • Hash Spill Count:两个快照期间的hash过程中,若发生落盘,写文件的次数。
  • Hash Spill Size(KB):两个快照期间的hash过程中,若发生落盘,使用的文件大小(单位:KB)。
  • SQL Text:这里显示的SQL语句只有一部分,完整的SQL需要点击Unique SQL Id跳转到完整SQL处。

步骤9

如果发现CPU高期间报告的CPU Time(us)前面几个的SQL明显不同且CPU耗时较大,则原因可能为CPU高耗时SQL调用量上涨导致,如果需要分析为什么此SQL的CPU耗时高则可以参考步骤11。
在这里插入图片描述

步骤 10

如果两个报告前10个Unique SQL Id对比几乎相同,此时看SQL对应的CPU耗时和ncalls,如果calls上涨则说明是业务压力增大导致的CPU上涨,如果calls没有上涨,则需要分析为什么同一条SQL在此阶段的CPU耗时上涨,跳转步骤11。

步骤 11

在语句和调用次数没有变化的情况下,如果是查询语句看此SQL模板的Returned Rows和Physical Read,如果数量有明显增长则说明此SQL读写的数据量增大导致的CPU压力上涨,一般有两种情况,部分特殊值的情况下扫描数据量大或者计划发生改变导致扫描数据量变大。如果是写语句则可以看Tuples Affected是否有明显增加,一般读取数据比较耗CPU,如果是语句本身影响的主要围绕数据读取方面进行对比。

步骤 12

如果两个快照的数据几乎相同,可以通过火焰图或者长事务做进一步分析。

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

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

相关文章

去除小程序home按钮

前言:当我们未登录时,会跳转到登录页,但是这时候登录页左上角会有一个跳转到首页的按钮,但是,我们不希望出现这个回到首页的按钮 去除前: 去除后: 代码: onShow() {wx.hideHomeBut…

html5的drag属性实现拖放

70. html5的drag属性实现拖放 拖放&#xff08;Drag 和 Drop&#xff09;是很常见的特性。它指的是您抓取某物并拖入不同的位置。 拖放是 HTML5 标准的组成部分&#xff1a;任何元素都是可拖放的。 下面我们通过一个例子来实现拖放 <div id"drop" ondrop"…

快一起来看看好用的ai绘画以图生图教程有哪些吧

我朋友近期在研究ai绘画软件&#xff0c;想要用它创造出一些独特的艺术作品。所以他去查看了ai绘画软件排行榜&#xff0c;但是&#xff0c;里面有很多款不同类型的绘画软件&#xff0c;让人有点眼花缭乱。于是&#xff0c;他来问我ai绘画软件排行靠前的哪个好&#xff0c;我就…

Excel - Windows操作系统下的键盘快捷方式

注意&#xff1a; * 这些快捷方式指的是美式键盘布局。 其他键盘布局的键可能与美式键盘上的键不完全对应。 * 快捷方式中的加号 () 表示需要同时按多个键。 * 快捷方式中的逗号 (,) 表示需要按顺序按多个键。 * 如果经常使用的操作没有快捷键&#xff0c;则可以“录制宏”…

mybatis 模拟03

pom.xml: <?xml version"1.0" encoding"UTF-8"?> <project xmlns"http://maven.apache.org/POM/4.0.0"xmlns:xsi"http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation"http://maven.apache.org/POM/4.0.0…

hexo stellar设置笔记页面

stellar主题的作者在其文档介绍了如何进行笔记页面的简单设置&#xff0c;但是我看了以后还是有点云里雾里&#xff0c;在一顿查阅资料以后&#xff0c;我终于找到了解决办法。 参考下面这个博主的文章。写得很详细&#xff0c;这里就不再赘述啦。 Stellar主题自定义侧边栏教…

通联历史数据如何自动化导入 DolphinDB

在部署完 DolphinDB 后&#xff0c;需要将历史数据批量导入数据库&#xff0c;再进行数据查询、计算和分析等操作。为便于用户快速导入通联历史 Level-2 行情数据&#xff0c;DolphinDB 开发了 DolphinDBModules::easyTLDataImport 模块&#xff08;简称 easyTLDataImport 模块…

Vue之事件修饰符

文章目录 前言一、事件修饰符二、实例1.prevent2.stop3.capture4.self 总结 前言 对事件进行处理。 一、事件修饰符 prevent&#xff1a;阻止默认事件&#xff08;常用&#xff09;。stop&#xff1a;阻止事件冒泡&#xff08;常用&#xff09;。once&#xff1a;事件只触发一…

Linux 系统下克隆 Github 项目指令

文章目录 1. 安装 git2. 设置用户名和邮箱3. 生成密钥4. 复制密钥5. 配置 Github SSH keys6. 克隆项目 1. 安装 git Ubuntu 安装指令 apt-get install gitCentOS 安装指令 yum install git 查看 Git 版本信息 git version2. 设置用户名和邮箱 git config --global user.nam…

【AI底层逻辑】——篇章3(下):信息交换信息加密解密信息中的噪声

续&#xff1a;【AI底层逻辑】——篇章3&#xff08;上&#xff09;&#xff1a;数据、信息与知识&香农信息论&信息熵 目录 三、信息是如何交换的 1、互联网与信息交换 2、哈夫曼和有效编码 四、信息的加密与解密 1、密码学的发展 2、可以被公开的密钥 五、信息…

js 左右滑动切换图片

一、效果图 二、代码 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta http-equiv"X-UA-Compatible" content"IEedge"><meta name"viewport" content"widthdev…

python在线考试系统-计算机毕设 附源码78268

Django在线考试系统 摘 要 本论文主要论述了如何使用python语言、Django框架开发一个在线考试系统&#xff0c;本系统将严格按照软件开发流程&#xff0c;进行各个阶段的工作&#xff0c;面向对象编程思想进行项目开发。在引言中&#xff0c;作者将论述该系统的当前背景以及系统…

【JAVA基础】一文了解forEach循环

前言 相信大家肯定都看过阿里巴巴开发手册&#xff0c;而在阿里巴巴开发手册中明确的指出&#xff0c;不要再foreach循环里面进行元素的add和remove&#xff0c;如果你非要进行remove元素&#xff0c;那么请使用Iterator方式&#xff0c;如果存在并发&#xff0c;那么你一定要…

el-table控制列的显示与隐藏

1、序言 源码在下方&#xff0c;复制粘贴就可运行 当一个表格太多列的时候&#xff0c;想要显示/隐藏一些列&#xff0c;目标效果如下&#xff1a; 默认情况下&#xff0c;展示所有列 隐藏某一列 2、原理 &#xff08;1&#xff09;data数据有&#xff1a;tableData为表格数据&…

c++类和对象收尾

文章目录 隐式类型转换匿名对象拷贝构造----->构造 隐式类型转换 //隐式类型转换 class A { public:/*explicit A(int a ):_a(a){cout << "A(int a )" << endl;}*/A(int a):_a(a){cout << "A(int a )" << endl;}A(const A&…

4. QT环境下使用OPenCV(视频或摄像头读取显示在QLabel控件上)

1. 说明 在用opencv处理图像时,图像的来源大部分情况下是从视频中读取过来的,视频可以是本地保存的视频,也可以是本地摄像头或者网络摄像头实时拍摄的视频。 效果展示: opencv读取视频 2. 具体操作 关于视频的读取,实际上也是从视频中将每一帧图像加载后,显示到QLabel…

【数据可视化方案分享】电商数据分析

本文所分享的电商数据分析报表均来自奥威BI软件的电商数据分析方案&#xff01;该方案是一套包含数据采集、数据建模、数据分析报表的系统化、标准化数据分析方案&#xff0c;下载套用&#xff0c;立见效果&#xff01; 注意&#xff0c;奥威BI软件的电商数据分析方案分两类&a…

Elasticsearch Global Ordinals

用于减少字符串字段 fielddata 内存使用的技术之一称为序数&#xff08;ordinals&#xff09;。想象一下&#xff0c;我们有十亿个文档&#xff0c;每个文档都有一个状态字段。 只有三种状态&#xff1a;status_pending、status_published、status_deleted。 如果我们要在内存中…

Ubuntu离线安装Telnet服务

通过ssh上传telnet包&#xff0c;下载地址&#xff1a;telnet-0.17-41.2build1-amd64资源-CSDN文库 解压telnet包&#xff1a; tar -xzvf telnet_0.17-41.2build1_amd64.tar.gz 安装telnet服务&#xff1a; dpkg -i telnet_0.17-41.2build1_amd64.deb 安装完毕&#xff0c;测…

2023第三届中国RPA+AI开发者大赛圆满收官获奖名单公示

6月26日&#xff0c;历时三个月的2023「第三届中国RPAAI开发者大赛」在苏州国际博览中心圆满收官。本次大赛以“探索创新智能融合”为主题&#xff0c;旨在寻找并推动中国RPA和AI领域的创新人才和前沿技术。云集来自各大行业与领域的企业、高校等326支优秀团队&#xff0c;共计…