Skip to content
进阶

一句话答案

Arthas 是阿里开源的 Java 在线诊断工具,核心命令:dashboard(面板)/ thread(线程)/ trace(耗时)/ jad(反编译)。

核心要点

核心命令:

命令用途
dashboard实时查看系统面板(线程/内存/GC)
thread查看线程状态,thread -n 3 看最忙的3个
jad反编译类,确认线上代码版本
watch观察方法入参/返回/异常
trace追踪方法调用耗时,定位慢调用
heapdump生成堆 dump 文件
sc/sm搜索类/方法

典型使用场景:

  1. CPU 飙高thread -n 5 → 找到占 CPU 最高的线程 → thread <id> 看堆栈
  2. 方法耗时trace com.xxx.Service method → 逐层下钻找慢点
  3. 代码确认jad com.xxx.Class → 确认部署的是哪个版本
  4. 动态修改redefine /tmp/Fix.class → 热修复(慎用)
追问与易错

追问方向:

  • 线上 CPU 100% 怎么用 Arthas 排查?
  • 怎么确认线上代码版本对不对?
  • Arthas 和 jstack 比有什么优势?

易错点:

  • ❌ Arthas 只能排查性能问题——还能热修复和动态日志
  • ❌ 生产环境随意使用 redefine

💡 记忆锚点

Arthas是线上的"听诊器":dashboard看全局体征,thread抓CPU元凶,trace逐层定位慢调用,jad反编译确认代码版本,watch窥探方法出入参。CPU飙高三板斧:thread -n 5找线程、看堆栈、定位代码。