火焰图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