说明
- 环境:CentOS 6.9
- 主要工具:FlameGraph
- 目的:检测某进程中各函数的CPU的消耗情况
步骤
安装FlameGraph
1
$ git clone git@github.com:brendangregg/FlameGraph.git
查找将要分析的进程pid
1
比如:$ ps -ef|grep service_name
使用Linux自带的性能分析工具perf捕获CPU堆栈调用数据(Capture stacks)
1
2
3
4# 以100次/每秒的频率读取pid=2917的进程的CPU调用堆栈数据,并输出结果到perf.data中
$ perf record -F 100 -p 2917 -g -- sleep 120
# 读取并展示perf.data中的调用栈追踪数据,并输出到out.perf中
$ perf script > out.perf使用FlameGraph提供的工具stackcollapse-perf.pl,将out.perf中的数据转换为可识别的单行数据(Fold stacks)
1
$ ./stackcollapse-perf.pl out.perf > out.folded
使用FlameGraph提供的工具flamegraph.pl,将out.folded中的数据渲染为svg文件
1
$ ./flamegraph.pl out.folded > out.svg
- svg文件用浏览器打开即可看到效果
…