#火焰图perf

yum -y install perf

#采样

perf record -F 99 -p <pid> -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