首页 > 其他分享 >GaussDB火焰图分析

GaussDB火焰图分析

时间:2024-10-28 15:22:36浏览次数:5  
标签:分析 百分比 perf GaussDB 火焰 占用 执行 CPU 函数

问题描述

CPU利用率是衡量系统负载和健康度的重要指标之一,系统在运行过程中时常发生CPU利用率高的情况。在分析性能问题时,可通过火焰图查看CPU耗时,了解瓶颈在哪里。

问题现象

部分sql执行速度不符合预期。

告警

  • 慢sql告警。
  • cpu使用率高告警。
  • 数据库整体运行慢。

业务影响

业务性能差。

原因分析

函数存在性能问题。

处理方法

所需工具:stackcollapse-perf.pl、flamegraph.pl。注意权限修改。

  1. 登录主DN节点,查看耗CPU高的进程,查看进程号。

    top
    

    在这里插入图片描述
    参数说明:

    • %us (usr/user):用户空间占用CPU的百分比。
    • %sy (system):内核空间占用CPU的百分比。
    • %ni (nice):改变过优先级的进程占用CPU的百分比。
    • %id (idle):空闲CPU百分比。
    • %wa (iowait):IO等待占用CPU的百分比(实际CPU并未工作)。
    • %hi (hardware interrupts):硬中断(Hardware IRQ)占用CPU的百分比。
    • %si (software interrupts):软中断(Software Interrupts)占用CPU的百分比。
    • %st (steal):Hypervisor偷取的CPU的百分比。
  2. 执行perf 命令(performance 的缩写),它是 Linux 系统原生提供的性能分析工具,会返回 CPU 正在执行的函数名以及调用栈(stack)。
    通常,它的执行频率是 99Hz(每秒99次),如果99次都返回同一个函数名,那就说明 CPU 这一秒钟都在执行同一个函数,可能存在性能问题。

    perf record -e cpu-clock -g -p 28591 <主DN进程号> -- sleep 60<持续60s>
    

    Ctrl+c结束执行后,在当前目录下会生成采样数据perf.data(执行时长1分钟即可)。

  3. 用perf script工具对perf.data进行解析:

    perf script -i perf.data &> perf.unfold
    
  4. 将perf.unfold中的符号进行折叠:

    ./stackcollapse-perf.pl perf.unfold &> perf.folded
    
  5. 最后生成svg图:

    ./flamegraph.pl perf.folded > cn.svg
    

    在这里插入图片描述
    y 轴表示调用栈,每一层都是一个函数。调用栈越深,火焰就越高,顶部就是正在执行的函数,下方都是它的父函数。
    x 轴表示抽样数,如果一个函数在 x 轴占据的宽度越宽,就表示它被抽到的次数多,即执行的时间长。注意,x 轴不代表时间,而是所有的调用栈合并后,按字母顺序排列的。
    火焰图就是看顶层的哪个函数占据的宽度最大。只要有"平顶"(plateaus),就表示该函数可能存在性能问题。
    颜色没有特殊含义,因为火焰图表示的是 CPU 的繁忙程度,所以一般选择暖色调。
    https://support.huaweicloud.com/intl/zh-cn/gaussdb/index.html​

标签:分析,百分比,perf,GaussDB,火焰,占用,执行,CPU,函数
From: https://www.cnblogs.com/xiaoxu0211/p/18510715

相关文章

  • GaussDB OLTP 云数据库配套工具DAS
    一、前言传统的数据库管理软件,不仅需要下载安装、功能还比较单一,而且已经滞后于云服务的发展模式。华为GaussDB云数据库提供了配套的生态工具数据管理服务DAS。DAS通过与数据库内核的紧密结合,提供了数据库开发、运维、智能诊断一站式云上数据库管理平台,方便用户使用和运维华为......
  • AI伙伴:借助人工智能将新老代码对比分析后直出结果
    实在太强了,事情经过就是同样实现一个效果,有一段新代码,还有一段老代码,但是怕新代码有什么遗漏,就让AI去比较,然后给出答案,结果是真的太爽了。新老代码老代码:写着写着把老代码改得面目全非了,其实是无法运行的。constremoveTab=(targetIndex:string)=>{//如果是删......
  • 深度解读GaussDB逻辑解码技术原理
    本文分享自华为云社区《【GaussTech技术专栏】GaussDB逻辑解码技术原理》,作者:GaussDB数据库。1.背景随着国内各大行业数字化改造步伐的加快,异构数据库数据同步的需求场景越来越多。异构数据库同步,即将不同类型、不同结构的数据库之间的数据进行同步处理,以确保数据在不同数据库......
  • SAS 在内网监控软件数据分析场景的应用
    随着企业信息化程度的不断提高,内网安全变得至关重要。内网监控软件能够收集大量的数据,而如何有效地分析这些数据以获取有价值的信息,成为了企业保障网络安全和优化网络性能的关键。SAS作为一款强大的数据分析工具,在处理内网监控软件数据方面具有显著的优势。本文将探讨SAS在内网......
  • 使用 EXPLAIN 分析结果优化 SQL 查询
    使用EXPLAIN分析结果优化SQL查询是数据库性能调优中的一项重要技能。EXPLAIN语句能够展示数据库查询优化器对SQL查询的处理计划,从而帮助开发者识别查询中的瓶颈和低效部分。本文将详细介绍如何使用EXPLAIN分析结果来优化SQL查询。一、什么是EXPLAINEXPLAIN语......
  • 揭秘NLP中的基础特征:句法分析与句法分析器
     欢迎关注我......
  • 重采样方法(交叉验证法)——基于glm与LOOCV法(Weekly数据集分析)
    Chapter5:Exercise7读取数据集Weekly数据集通常指的是在统计、数据分析或机器学习领域中,一个以周为单位进行记录的数据集合。以下是对Weekly数据集的一个详细介绍:一、数据来源与背景Weekly数据集可能来源于多个领域,如金融、经济、市场营销等,这些领域通常需要按周跟踪......
  • Python100个案例源码(基础应用,网络爬虫,数据分析与图表,文件、系统、图形与多媒体,办公自
    Python100个案例源码点我下载此资源部分示例模拟迷宫地图的二维列表map_list=[["“,”@“,”@“,”@“,”@“,”@“,”@“,”@“,”@“,”@“,”@“,”@“,”@“,”@“,”@“,”@“,”@“,”@“,”@“,”@“,”@“,”@“,”@“,”@“,”@“,”@“,”@“,”@“......
  • 基于案例分析 MySQL 权限认证中的具体优先原则
    在MySQL的日常管理过程中,大家或多或少会遇到权限认证相关的问题。例如,本来能够正常执行的操作,可能在新增一个账号或授权后就突然失败了。这种现象往往让人误以为是bug,但很多时候,其实并不是。下面,将通过两个案例来阐明MySQL权限认证中的具体优先原则,并在此基础上,分析以下问......
  • 数据分析,除了Excel数据透视表,还有什么工具
    数据分析:除了Excel数据透视表,还有什么工具?在数据分析领域,除了Excel数据透视表,还有许多强大的工具,包括Python、R语言、Tableau、PowerBI以及SQL。这些工具各具特色、适用于不同的数据处理和分析场景。其中,Python凭借其强大的数据处理库如Pandas和数据可视化库如Matplotlib和Seab......