java性能分析之火焰图
原由
最近因为kafka、zookeeper、ES和相关的Java应用的内存问题搞的头大,做运维将近4年,对Java调优、性能方面的知识了解的少之又少,是时候下定决心来对他多一个学习了。不能一口吃成一个胖子,每天学一点学一点。Brendan D. Gregg他真的是我膜拜膜拜又膜拜的偶像,他的博客里有很多很多的干货,也一直还没全面的学习,强烈推荐http://www.brendangregg.com/index.html。也是看了他的博客和相关书籍,里面的火焰图看起来就很牛逼,于是就想着理论结合实践动起来。
前言
这里先记录怎么把火焰图弄出来,具体的原理及其分析后续一点一点的磕,一点一点的补,具体的步骤入下。
结果
实现
1、安装依赖包
yum -y install git yum install gcc gcc-c++ yum install perf
2、安装perf-map-agent
git clone --depth=1 https://github.com/jvm-profiling-tools/perf-map-agent cd perf-map-agent cmake . (这里记得系统需要有JAVA_HOME的环境变量,可以通过echo $JAVA_HOME看你的系统是否已经有了) make
3、分析和生成火焰图
git clone --depth=1 https://github.com/brendangregg/FlameGraph perf record -F 49 -a -g -- sleep 30; ./FlameGraph/jmaps perf script > out.stacks01 cat out.stacks01 | ./FlameGraph/stackcollapse-perf.pl | grep -v cpu_idle | ./FlameGraph/flamegraph.pl --color=java --hash > out.stacks01.svg
注:vim ./FlameGraph/jmaps 文件的AGENT_HOME要改成自己第二步安装的目录
相关链接
作者:李先生
-------------------------------------------
个性签名:在平凡中坚持前行,总有一天会遇见不一样的自己!
如果觉得这篇文章对你有小小的帮助的话,记得在右下角点个“推荐”哦,博主在此感谢!
万水千山总是情,打赏一分行不行,所以如果你心情还比较高兴,也是可以扫码打赏博主,哈哈哈(っ•̀ω•́)っ✎⁾⁾!
微信公众号 微信打赏 支付宝打赏
posted on 2020-10-15 13:59 Captain_Li 阅读(3892) 评论(0) 编辑 收藏 举报