在不知道Arthas之前
- 如果线上出bug,无法debug的情况,需要重新打日志发布?
- 修改的代码没有执行到,线上的代码和本地不一样?
- 怎么监控JVM实时运行状态?
这些问题都在折磨着我们,你如果没有其他的更好方案或者方法解决,Arthas[1] 适合你。
基础用法
- 下载arthas-demo 使用java -jar启动
curl -O https://alibaba.github.io/arthas/arthas-boot.jar
java -jar arthas-boot.jar
选择你需要attach的目标进程,(3395进程是本地启动的一个java应用)
选择1 之后
- 观察线程3395 java应用中一个接口的入参和出参
watch 接口全限定名 接口名 "{params,returnObj}" -x 2
- 反编译 java应用中的一个类。
jad 接口全限定名
- 查看当前jvm 相关信息
jvm
命令总览
最后
命令太多记不住怎么办? IDE插件助你腾飞 ——Idea arthas 插件插件安装指南。
右键 - > 选择对应的操作,命令已经复制,去粘贴就好了。
参考:https://github.com/alibaba/arthas/issues/1003
https://alibaba.github.io/arthas/
-
Arthas支持JDK 6+,支持Linux/Mac/Winodws,采用命令行交互模式,同时提供丰富的 Tab 自动补全功能,进一步方便进行问题的定位和诊断 ↩