GaussDB WDR报告分析

这篇具有很好参考价值的文章主要介绍了GaussDB WDR报告分析。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

问题描述

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报告中搜索即可。
GaussDB WDR报告分析
GaussDB 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。
GaussDB WDR报告分析

步骤 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

如果两个快照的数据几乎相同,可以通过火焰图或者长事务做进一步分析。文章来源地址https://www.toymoban.com/news/detail-504812.html

到了这里,关于GaussDB WDR报告分析的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • io使用率高运行堵塞怎么解决?linux系统由io使用率高引起的运行堵塞的解决方法

    1.在宝塔查看服务器负载100%,而cpu和内存使用率都正常 输入top命令查看平均负载:

    2024年02月15日
    浏览(40)
  • Delphi的使用率和前景

    Delphi是一种基于Pascal语言的高级编程语言,由美国Borland公司(后来改名为CodeGear,现在归属于Embarcadero公司)开发。自1995年问世以来,Delphi已经经历了20多年的发展历程,成为了Windows平台上广泛应用的开发工具之一。本文将从Delphi的历史、特点、优缺点和应用实例等方面,探

    2024年02月13日
    浏览(39)
  • Oracle 如何提高空间使用率?

    oracle尽量保证一行的数据能够放在同一个数据块当中,有的时候行会发生行迁移和行链接。 行链接 :有一个列的字段是大对象(long,longlong)一行占的数据一整个块都放不下,则oracle会把这行的数据分为两部分或多部份,存放到不同的数据块,这种现象叫做行链接。 行链接

    2024年02月21日
    浏览(45)
  • 【linux】查看CPU的使用率

    命令1:top 总体系统信息 uptime:系统的运行时间和平均负载。 tasks:当前运行的进程和线程数目。 CPU:总体 CPU 使用率和各个核心的使用情况。 内存(Memory):总体内存使用情况、可用内存和缓存。 查看 CPU 使用率 以下是一些常用的CPU使用率相关字段: %Cpu(s):显示整个系统

    2024年04月23日
    浏览(58)
  • CPU 使用率和负载Load

    优质博文:IT-BLOG-CN CPU 使用率是 CPU 处理非空闲任务所花费的时间百分比 。例如单核 CPU 1s 内非空闲态运行时间为 0.8s ,那么它的 CPU 使用率就是 80% ;双核 CPU 1s 内非空闲态运行时间分别为 0.4s 和 0.6s ,那么,总体 CPU 使用率就是 (0.4s + 0.6s) / (1s * 2) = 50% ,其中 2 表示 CPU 核数

    2024年02月03日
    浏览(50)
  • 测试:虚拟机查看CPU使用率

    Windows虚拟机 任务管理器 : 在虚拟机中,您可以打开任务管理器(Ctrl + Shift + Esc),然后在“进程”标签下查看CPU使用率。 PowerShell : 使用PowerShell命令 Get-VM | Select-Object Name, CPUUsage 可以查询虚拟机的CPU使用率。 VMware vSphere Client : 如果您的虚拟机运行在VMware环境中,可以使用

    2024年02月01日
    浏览(73)
  • qt使用QCustomplot绘制cpu和内存使用率图

                QCustomPlot是一个开源的Qt C++图表库,用于可视化数据。该库提供了多种类型的可定制的图表,包括散点图、线图、柱状图和等高线图等。它还支持自定义绘制,可以创建任意形状和大小的元素,并使其与其他元素交互。QCustomPlot易于集成到现有的Qt应用程序中

    2024年02月09日
    浏览(50)
  • linux /var分区使用率高处理

    某个数据库机器报/var分区使用率高 [root@hydb2 ~]#  df -h Filesystem                     Size  Used Avail Use% Mounted on devtmpfs                        95G   64K   95G   1% /dev tmpfs                           95G  644M   94G   1% /dev/shm tmpfs          

    2024年02月16日
    浏览(42)
  • linux top命令中 cpu 利用率/mem 使用率与load average平均负载计算方式

    top 命令是 Linux 上一个常用的系统监控工具,它经常用来监控 Linux 的系统状态,是常用的性能分析工具,能够显示较全的系统资源信息,包括系统负载,CPU 利用分布情况,内存使用,进程资源占用情况等。 如下示例: 这里主要看进程的 CPU%, MEM% 和 load averge 字段。 该字段指

    2024年02月03日
    浏览(53)
  • Android 性能优化 命令行查看CPU使用率

    本文介绍cpu使用率概念,和使用ps命令、top命令和dumpsys cpuinfo命令来查看cpu使用率,帮助我们了解应用程序在运行过程中的整体状态和各个线程状态。 CPU利用率指系统中CPU的使用情况,通常以百分比表示CPU使用率。 在多核情况下,CPU使用率指的是所有核心的平均使用率。 通

    2024年02月05日
    浏览(55)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包