Arthas官方文档,开文就描述了该工具的功能:
当你遇到以下类似问题而束手无策时,Arthas可以帮助你解决:
1.这个类从哪个 jar 包加载的?为什么会报各种类相关的 Exception?
2.我改的代码为什么没有执行到?难道是我没 commit?分支搞错了?
3.遇到问题无法在线上 debug,难道只能通过加日志再重新发布吗?
4.线上遇到某个用户的数据处理有问题,但线上同样无法 debug,线下无法重现!
5.是否有一个全局视角来查看系统的运行状况?
6.有什么办法可以监控到JVM的实时运行状态?
一.arthas新手入门
1.下载arthas-demo.jar,再用java -jar命令启动:
$ wget https://alibaba.github.io/arthas/arthas-demo.jar
$ java -jar arthas-demo.jar
2.下载arthas-boot.jar程序,并启动
$ wget https://alibaba.github.io/arthas/arthas-boot.jar
$ java -jar arthas-boot.jar
输入1,让arthas追踪255 端口的demo程序
3.arthas追踪成功后,会显示下图
4.dashboard命令,查看当前系统的实时数据面板。
$ dashboard
5.thread 1 会打印线程1的栈
$ thread 1
6.jad demo.MathName 可以反编译代码
$ jad demo.MathName
7.watch命令可以查看方法入参/返回值/异常等
$ watch demo.MathGame primeFactors returnObj
8.stop命令可以彻底退出arthas追踪
$ stop
$ exit
exit可以退出追踪,但连接任然存在,可以再运行java -jar arthas-boot.jar进入追踪连接.
以上为arthas的新手入门,稍后会将arthas进阶使用的文章发布.