在RHEL系统中快速抓取火焰图

在之前的好几篇Blog里,都使用了火焰图来对业务进行性能优化,之前为了抓取火焰图,需要用到好几个工具进行组合,流程还是比较麻烦的。随着RHEL的版本更新,Redhat提供了一个更简单快速的方法实现了一键抓取火焰图的功能。

这个功能在RHEL 8.2及以上版本可以使用,当然RHEL对应的衍生版比如OracleLinuxAlmaLinuxRockyLinux等也是可以直接使用的。

首先需要安装perfjs-d3-flame-graph这两个软件包:

# yum install js-d3-flame-graph perf -y

然后就可以通过perf script flamegraph -a -F 99 sleep 60命令抓取整个系统的火焰图了,其中-a参数表示需要记录整个系统的性能数据,-F参数指定每秒的收集频率,sleep 60表示收集60S的数据。

60秒后,命令自动退出并会在当前目录生成一个flamegraph.html文件,用任意浏览器打开这个文件,即可看到火焰图。

当然,如果要收集某个进程的火焰图,可以使用perf script flamegraph -a -F 99 -p PID1,PID2 sleep 60命令。