阿里巴巴开源的Java 诊断工具

下载arthas-boot.jar,然后用java -jar的方式启动:

curl -O https://alibaba.github.io/arthas/arthas-boot.jar
java -jar arthas-boot.jar

选择应用java进程:

$ $ java -jar arthas-boot.jar
* [1]: 35542
  [2]: 71560 arthas-demo.jar

Demo进程是第2个,则输入2,再输入回车/enter。Arthas会attach到目标进程上,并输出日志

dashboard :系统实时数据面板, 可查看线程,内存,gc 等信息
thread :查看当前线程信息,查看线程的堆栈,如查看最繁忙的前 n 线程
getstatic:获取静态属性值,如 getstatic className attrName 可用于查看线上开关真实值
sc:查看 jvm 已加载类信息,可用于排查 jar 包冲突
sm:查看 jvm 已加载类的方法信息
jad:反编译 jvm 加载类信息,排查代码逻辑没执行原因
logger:查看logger信息,更新logger level
watch:观测方法执行数据,包含出参、入参、异常等
trace:方法内部调用时长,并输出每个节点的耗时,用于性能分析
tt:用于记录方法,并做回放
  1. 出来吃饭