miller
发布于

火焰图perf

yum -y install perf

采样

perf record -F 99 -p -g -- sleep 30
pid表示需要采样的进程id,如果是Java进程可以使用jps等命令获取进程id,perf record表示记录,-F 99表示每秒99次,-g表示记录调用栈,sleep 30则是持续30秒
sudo perf record -e cpu-clock -g -p 2548 -- sleep 30
-e cpu-clock 指perf record监控的指标为cpu周期

会生成 perf.data
perf report -i perf.data 直接查看

相对不直观,用火焰图方式

解析

perf script -i perf.data &> perf.unfold

将perf.unfold中的符号进行折叠:

#./stackcollapse-perf.pl perf.unfold &> perf.folded

生成火焰图 生成工具

./flamegraph.pl perf.folded > out.svg //生成火焰图

进阶阅读 : https://www.infoq.cn/article/a8kmnxdhbwmzxzsytlga
详细: https://www.brendangregg.com/perf.html
redhat reference

浏览 (676)
点赞
收藏
评论