Arthas
Arthas是一款阿里巴巴开源的 Java 线上诊断工具,功能非常强大,可以解决很多线上不方便解决的问题。
Arthas诊断使用的是命令行交互模式,支持JDK6+,Linux、Mac、Windows 操作系统,命令还支持使用 tab
键对各种信息的自动补全,诊断起来非常利索。
这是它的官方网站及文档:
https://alibaba.github.io/arthas/index.html
Github地址:
https://github.com/alibaba/arthas
-
运行 使用
java -jar
命令执行arthas-boot
包。java -jar arthas-boot.jar
-
显示当前系统的实时数据面板 按 ctrl+c 即可退出。
$ dashboard
thread 查看当前 JVM 的线程堆栈信息。
thread id, 显示指定线程的运行堆栈。
thread -n 3 显示当前最忙的前N个线程并打印堆栈。
-
jad 反编译
jad com.ccbft.ccbnp.es.service.impl.ESSearchServiceImpl
-
trace 查看方法执行耗时 -j 表示跳过 JDK 中的方法路径
trace -j com.ccbft.ccbnp.es.service.impl.ESSearchServiceImpl matchQuery
-
watch 观测方法执行数据,能方便的观察到指定方法的调用情况,如:返回值、抛出异常、入参等.
watch com.ccbft.ccbnp.np.service.impl.TCompos ingServiceImpl listByPage '{params, returnobj}' -x 2 -b
以上监控的是一个方法的入参情况,在方法执行前监控:-b,遍历深度:-x 2。
-
eixt / quit 退出 shutdown 关闭服务