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