1. 火焰图的分析

mac 上 java 火焰图 jstack 火焰图_java

 

mac 上 java 火焰图 jstack 火焰图_java_02

 

mac 上 java 火焰图 jstack 火焰图_jar_03

 

 

 

y 轴表示调用栈,每一层都是一个函数。调用栈越深,火焰就越高,顶部就是正在执行的函数,下方都是它的父函数。

x 轴表示抽样数,如果一个函数在 x 轴占据的宽度越宽,就表示它被抽到的次数多,即执行的时间长。

注意,x 轴不代表时间,而是所有的调用栈合并后,按字母顺序排列的。

参考:如何读懂火焰图? - 阮一峰的网络日志 (ruanyifeng.com)

 

2. arthas 监听端口:8563 和 3658

先重启java服务,避免之前应用被attach后端口被监听。

3. [root@iZ2zeivgo4p5nosz9bo8tvZ ~]# java -jar arthas-boot.jar  --target-ip 0.0.0.0   ## 注意安全

mac 上 java 火焰图 jstack 火焰图_java_04

 

 4. 访问火焰图

19.13.102.21:3658/arthas-output/20211117-144808.svg

mac 上 java 火焰图 jstack 火焰图_java_05

 Arthas Console

19.13.102.21:3658/

mac 上 java 火焰图 jstack 火焰图_java_06

 

https://cloud.tencent.com/developer/article/1643960  关于Arthas如何远程监视Java程序 

mac 上 java 火焰图 jstack 火焰图_jar_07

 

用一个例子来演示会更加清晰