1, 找出应用程序或内核消耗 CPU 的 PID
2, 执行 perf record 命令, 记录该 PID 的行为
perf record -a -g -p 14851 -- sleep 30 --30 秒后退出
3, 稍等一会儿, 在上述命令结束后, 会在当前目录生成 perf.data 文件. 继续执行 perf report 命令, 你就可以得到 perf 的汇总报告. 按上下方向键以及回车键, 展开比例最高的 函数后, 你就可以得到下面这个调用关系链图:
4, 火焰图分析
首先, 我们需要生成火焰图. 我们先下载几个能从 perf record 记录生成火焰图的工具:
下载地址:
或者: Git clone https://github.com/brendangregg/FlameGraph
cd FlameGraph/
安装好工具后, 要生成火焰图, 假设刚才用 perf record 生成的文件路径为 /root/perf.data, 执行下面的命令, 你就可以直接生成火焰图:
perf script -i /root/perf.data | ./stackcollapse-perf.pl --all | ./flamegraph.pl> ksoftirqd.svg
执行成功后, 使用浏览器打开 ksoftirqd.svg , 你就可以看到生成的火焰图了. 如下图所示:
来源: http://www.bubuko.com/infodetail-2999208.html