火焰图(Flame Graphs)
一、概述:
火焰图(flame graph)是性能分析的利器,通过它可以快速定位性能瓶颈点。
perf 命令(performance 的缩写)是 Linux 系统原生提供的性能分析工具,会返回 CPU 正在执行的函数名以及调用栈(stack)。
本文介绍它的安装和基本用法。

二、安装perf和可视化生成器
# yum install perf -y //yum方式安装perf
# git clone https://github.com/brendangregg/FlameGraph.git //选择好火焰图文件存放路径后执行该条命令,从github上获取火焰图的相关文件,获取完成后会有一个FlameGraph的文件夹,如下图

说明:打开文件夹,里面大部分是perf语言写的脚本,生成火焰图后续会用到,如下图,右图为各pl文件用途释义


到此,安装完成。
三、perf 采集数据
# perf record -F 99 -a -g -- sleep 60 //对CPU所有进程以99Hz采集,它的执行频率是 99Hz(每秒99次),如果99次都返回同一个函数名,那就说明 CPU 这一秒钟都在执行同一个函数,可能存在性能问题。执行60秒后会弹出如下图提示表示采集完成,在当前目录会生成一个perf.data的文件
# perf record -F 99 -p 181 -g -- sleep 60 //对进程ID为18

本文介绍了如何在Linux系统中安装perf工具和FlameGraph,用于生成火焰图进行性能分析。通过perf采集数据,利用FlameGraph生成SVG图片,以此来识别CPU调用栈中的性能瓶颈。火焰图的y轴表示调用栈,x轴表示抽样数,颜色不具特殊含义,主要关注顶部宽度大的函数。文章还提到火焰图的互动性和常见应用,如Node应用和Chrome浏览器的火焰图。
最低0.47元/天 解锁文章
394

被折叠的 条评论
为什么被折叠?



