Arthas
是Alibaba开源的Java诊断工具,深受开发者喜爱。在线排查问题,无需重启;动态跟踪Java代码;实时监控JVM状态。- 文档: 简介 | arthas
- Github: GitHub - alibaba/arthas: Alibaba Java Diagnostic Tool Arthas/Alibaba Java诊断利器Arthas
-
dashboard
命令可以查看当前系统的实时数据面板。 -
可以通过
jad
命令来反编译代码:jad demo.MathGame - 可以通过
sc
命令来查找JVM里已加载的类:sc -d *MathGame thread 1
命令会打印线程ID 1的栈:thread 1 | grep 'main('- 通过
watch
命令可以查看函数的参数/返回值/异常信息:watch demo.MathGame primeFactors returnObj
heapdump:
- heapdump --live /tmp/dump.hprof
- downloadf dump.hprof
monitor :
monitor -c 1 -n 2 com.test.Test show
- 其中
-c 1
表示监控周期,每一秒监控一次,如果不指定,默认是120秒周期 -n 2
表示一共监控2次,监控的方法为Test类中的show()
方法,如果不指定,将会一直监控下去
watch:
watch com.test.Test show "{params,returnObj}" -x 2 -b -e -s -f
-
观察的方法为Test类下的
show()
方法, -
"{params,returnObj}"
是观察表达式,是一个ognl表达式, -
-x 2
是指定输出结果的属性遍历深度,默认值为1,为1时看不到参数的具体值,只能看到类型; -
-b
:在方法调用之前观察,用此命令可查看方法的入参 -
-e
:在方法异常之后观察。用此命令可查看方法抛出的异常 -
-s
:在方法返回之后观察,可查看方法的返回值 -
-f
:在方法结束之后(正常返回和异常返回)观察,可查看方法的返回值和异常信息,默认打开-f