Arthas安装和启动
1. 下载Arthas
最新的版本是V3.4.5,从阿里云官网或者GitHub上都可以下载。
2. 下载的zip包解压后,windows平台中直接打开命令行窗口,输入下面命令进行启动
java -jar arthas-boot.jar
3. 这是会显示本机所有的java进程,如下图,挑选你之前已经启动好的一个java demo进程的序号,回车
4. 现在Arthas完成启动了,你可以继续在命令行窗口敲命令来监控Demo程序,也可以通过浏览器客户端访问
Arthas的关键命令
为什么要用Arthas是很多人问的问题,因为有很多牛逼的JVM监控工具,无论是功能上还是图形化方面都做得非常完善了。它提供了仿Linux的命令、查看JVM信息的命令,Class反编译以及实时方法的调用信息的监控的命令、ClassLoader的命令、和第三方软件的协同工作以及统计报表等。
1. dashboard——当前系统的实时数据面板
2. thread——查看当前 JVM 的线程堆栈信息
thread -n 3 : 展示最忙的3个线程的堆栈信息
thread:显示所有线程的情况
thread id:显示某个线程的堆栈信息
thread -b:显示阻塞线程
thread -i, 指定采样时间间隔
thread -i 1000 : 统计最近1000ms内的线程CPU时间
thread -n 3 -i 1000 : 列出1000ms内最忙的3个线程栈
3. heapdump——dump java heap, 类似jmap命令的heap dump功能
heapdump --live /tmp/dump.hprof,只dump live对象
4. sc——查看JVM已加载的类信息
sc demo.*
sc -d demo.XXClass :显示类的详细信息
sc -d -f demo.MathGame :显示字段信息
5. jad——反编译源码
jad demo.MathGame
6. monitor——对类的方法的调用监控
monitor -c 5 demo.MathGame primeFactors
7. trace——能方便的帮助你定位和发现因 RT 高而导致的性能问题缺陷
trace demo.MathGame run -n 1
8. watch——观察指定方法的出入参、抛出的异常信息
watch demo.MathGame primeFactors "{params,returnObj}" -x 2 :-x 2表示指定输出结果的遍历深度
watch demo.MathGame primeFactors "{params,returnObj}" -x 2 -b :观察方法入参
watch demo.MathGame primeFactors "{params,target,returnObj}" -x 2 -b -s -n 2 :观察方法出入参
-n 2表示执行两次,这样就能返回方法执行前后执行后的参数
总结
Arthas提供的命令对于开发者来说都是非常有针对性的,开发者不仅能迅速掌握这些命令,更能通过这些命令发现线上应用的异常和错误。我感觉目前Arthas还是处于起步阶段,离一款强大的商用JVM监控工具还有很长的路要走,期待Arthas接下来的版本给大家带来更多惊喜。