在centos linux 环境下使用火焰图
火焰图是个比较方便查看程序资源占用的图形,由于其外表看起来像一团火焰,故命名为火焰图(http://www.brendangregg.com/flamegraphs.html)
·
火焰图是个比较方便查看程序资源占用的图形,由于其外表看起来像一团火焰,故命名为火焰图,其形状如下图所示:
注意:图案中的颜色是随机的,无参考意义,而是通过观看水平条的宽度来区分占用资源的操作的,条越宽,说明占用的资源越多,越需要关注或优化
火焰图的说明,可参考地址:http://www.brendangregg.com/flamegraphs.html
在此整理下在linux下安装并使用火焰图的步骤:
1、火焰图依赖perf-map-agent,故首先需要安装配置该工具包:
git clone https://github.com/jvm-profiling-tools/perf-map-agent
cd perf-map-agent
yum install cmake
yum install gcc
yum install gcc-c++
cmake .
make
2、安装完perf-map-agent后,即可下载火焰图的主程序了:
git clone https://github.com/brendangregg/FlameGraph.git
cd FlameGraph
3、下载完火焰图的主程序后,即可通过命令生成火焰图了:
perf record -F 49 -a -g -- sleep 30; ./jmaps
perf script > out.stacks01
cat out.stacks01 | ./stackcollapse-perf.pl | grep -v cpu_idle | ./flamegraph.pl --color=java --hash > out.stacks01.svg
perf record -F 99 -p 181 -g -- sleep 60 #监控pid为181的进程60s
perf script > out.perf
./stackcollapse-perf.pl out.perf > out.folded
./flamegraph.pl out.folded > kernel.svg #生成火焰图文件kernel.svg文件
4、使用浏览器打开生成的svg图形,即可查看抽取的60s的程序运行的火焰图
更多推荐
已为社区贡献1条内容
所有评论(0)