官方文档:https://arthas.aliyun.com/doc/dashboard.html
启动
java -jar arthas-boot.jar
退出
如果只是退出当前的连接,可以用quit
或者exit
命令。Attach 到目标进程上的 arthas 还会继续运行,端口会保持开放,下次连接时可以直接连接上。
如果想完全退出 arthas,可以执行stop
命令。
dashboard命令
[i:] | 刷新实时数据的时间间隔 (ms),默认 5000ms |
[n:] | 刷新实时数据的次数 |
dashboard -i 2000 控制台2秒刷新一次
thread命令
-
thread -b, 找出当前阻塞其他线程的线程
-
thread --state ,查看指定状态的线程
NEW: 0, RUNNABLE: 9, BLOCKED: 0, WAITING: 3, TIMED_WAITING: 4, TERMINATED
-
thread -i, 指定采样时间间隔
thread -i 1000
: 统计最近 1000ms 内的线程 CPU 时间。
thread -n 3 -i 1000
: 列出 1000ms 内最忙的 3 个线程栈
-
thread --all, 显示所有匹配的线程
sc 查看 JVM 已加载的类信息
sc com.zgb.lxsass.housing.controller.HousingResourcesControl*
打印出类的 Field 信息:
sc -d -f demo.MathGame
Jad
反编译指定已加载类的源码,可以通过 jad 命令来反编译代码,jad 命令将 JVM 中实际运行的 class 的 byte code 反编译成 java 代码,便于你理解业务逻辑。
反编译指定类的指定方法
jad --source-only com.zgb.lxsass.housing.controller.HouseholdController getHouseholdPage
JVM
- COUNT: JVM 当前活跃的线程数
- DAEMON-COUNT: JVM 当前活跃的守护线程数
- PEAK-COUNT: 从 JVM 启动开始曾经活着的最大线程数
- STARTED-COUNT: 从 JVM 启动开始总共启动过的线程次数
- DEADLOCK-COUNT: JVM 当前死锁的线程数