java火焰图配置

关于火焰图的文章很多,,这里只是只个流水帐吧。。方便以后自己查看。。

1. 下载jfr-flame-graph

2. 在本地增加环境变量:export FLAMEGRAPH_DIR=/path/to/FlameGraph(由于我的本地是类unix系统,所以直接加了)

3. 在work机子java启动的地方添加两个参数:-XX:+UnlockCommercialFeatures -XX:+FlightRecorder (至于参数的含义请参考:https://docs.oracle.com/javacomponents/jmc-5-4/jfr-runtime-guide/run.htm#JFRUH176)

4. 启动你的java

5. 请求前使用:jcmd ${PID} JFR.start duration=120s filename=/path/to/myrecording.jfr

6. 使用  jcmd ${PID} JFR.check查看是否启动也就是runing

7. 使用 jcmd ${PID} JFR.check查看是否启动也就是stop 那么表示抓到jfr结束

8. 使用./create_flamegraph.sh -f /tmp/highcpu.jfr -i > flamegraph.svg生成svg图

然后用浏览器打开,,体验一把火焰图的威力吧。 

这里我们抓的是CPU类型的分析,火焰图展示了在采样周期内,code-path被执行的时间占比,Y轴是code-path,从下至上一般就是调用栈,相同的采样调用栈会被合并,栈顶元素就是采样的时候CPU运行的stack,X轴是某个stack的占用时间,跨度越大说明其占CPU比重越高,也就是最耗费CPU的,stack在横轴上是按照字母序排列的,颜色深浅仅仅是为了区分,并没特殊意义。

猜你喜欢

转载自www.cnblogs.com/tywei/p/9078886.html