阿尔萨斯(Arthas)
# 1 trace
利用trace命令追踪方法耗时。
https://arthas.aliyun.com/doc/trace.html
curl -O https://arthas.aliyun.com/arthas-boot.jar
java -jar arthas-boot.jar
trace com.yl.mhs.api.stream.kafka.receiver.WaybillOggApiReceiver doOggWaybillHandel
# 2 reset
通过reset命令可以重置增强类,将被 Arthas 增强过的类全部还原,Arthas 服务端关闭 时会重置所有增强过的类。
Arthas在 watch/trace 等命令时,实际上是修改了应用的字节码,插入增强的代码。显式执行reset命令,可以清除掉这些增强代码。
# 3 quit-stop
退出Arthas
用exit或者quit命令可以退出Arthas。
exit quit
退出Arthas之后,还可以再次用 java -jar arthas-boot.jar来连接。
彻底退出Arthas
exit/quit命令只是退出当前session,arthas server还在目标进程中运行。
想完成退出Arthas,可以执行stop命令。
stop
# 4 thread
查看当前线程信息,查看线程的堆栈。
thread -b
找出当前阻塞其他线程的线程
# 5 sysprop
查看当前JVM的系统属性。
# 6 heapdump
类似jmap命令的heap dump功能。
heapdump /tmp/dump.hprof
# 7 dashboard
dashboard命令可以查看当前系统的实时数据面板。
# 8 watch
观察指定方法的调用情况。能观察到的范围为:返回值、抛出异常、入参,通过编写 OGNL 表达式进行对应变量的查看。
观察异常信息的例子:
watch demo.MathGame primeFactors "{params[0],throwExp}" -e -x 2