前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >使用 perf 和 Flame Graphs 分析 MySQL

使用 perf 和 Flame Graphs 分析 MySQL

原创
作者头像
贺春旸的技术博客
发布2024-06-27 16:44:38
950
发布2024-06-27 16:44:38
举报
文章被收录于专栏:DBA 平台和工具DBA 平台和工具

性能分析中的一项常见任务是确定哪些代码段消耗的 CPU 时间最多。这通常需要对堆栈跟踪进行剖析。Flame 图形的出现改变了我们对这些剖析进行可视化的方式。它能直观地显示应用程序中占用 CPU 最多的部分。本文将介绍如何使用 perf 生成这些火焰图。

步骤

1)安装perf

代码语言:txt
复制
yum install -y perf

2) 获取性能数据

在我们的示例中,我们将捕获 mysqld 进程 60 秒的性能数据。

代码语言:bash
复制
perf record -a -g -F99 -p 1685 -- sleep 60

注:1685就是MySQL的进程号

3)转换捕获的数据

数据捕获后,最初是二进制格式。为了理解这些数据,我们需要将其转换成更可读的格式。

代码语言:bash
复制
perf script > perf.script

虽然这些数据现在是人类可读的格式,但图表更容易让人类读懂。

4)安装FlameGraph

代码语言:bash
复制
shell> git clone https://github.com/brendangregg/FlameGraph
shell>./FlameGraph/stackcollapse-perf.pl perf.script | ./FlameGraph/flamegraph.pl > flamegraph.svg

现在,你可以在自己喜欢的网络浏览器中打开 flamegraph.svg,以交互方式探索图表。

5)利用GPT读懂火焰图

你把perf.script文件上传到GPT上,然后问它哪个函数调用频率高,它会给你回复。

火焰图
火焰图

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 步骤
    • 1)安装perf
      • 2) 获取性能数据
        • 3)转换捕获的数据
          • 4)安装FlameGraph
            • 5)利用GPT读懂火焰图
            相关产品与服务
            云数据库 MySQL
            腾讯云数据库 MySQL(TencentDB for MySQL)为用户提供安全可靠,性能卓越、易于维护的企业级云数据库服务。其具备6大企业级特性,包括企业级定制内核、企业级高可用、企业级高可靠、企业级安全、企业级扩展以及企业级智能运维。通过使用腾讯云数据库 MySQL,可实现分钟级别的数据库部署、弹性扩展以及全自动化的运维管理,不仅经济实惠,而且稳定可靠,易于运维。
            领券
            问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档