Arthas 最常用命令速查表

一、启动 & 基础

bash 复制代码
# 一键启动(直接 attach 目标进程)
curl -O https://arthas.aliyun.com/arthas-boot.jar
java -jar arthas-boot.jar

# 退出 Arthas(不影响 Java 进程)
quit

# 彻底关闭 Arthas 服务
stop

二、查看类 / 方法(最常用)

bash 复制代码
# 1. 查看 JVM 已加载的类(支持模糊匹配)
sc *UserService*
sc -d com.example.UserService  # 详细信息(Jar 路径、类加载器)

# 2. 反编译查看线上真实代码(神器)
jad com.example.UserService
jad com.example.UserService getUserById  # 只看方法

三、排查性能 / 慢接口(必用)

bash 复制代码
# 1. 查看方法调用链路 + 每步耗时
trace com.example.UserService getUserById

# 2. 监控方法耗时、次数、失败率
monitor com.example.UserService getUserById

# 3. 统计方法调用时间分布
tt -t com.example.UserService getUserById

四、查看入参、返回值、异常(线上调试神器)

bash 复制代码
# 万能命令:入参 + 返回值 + 异常 + 耗时
watch com.example.UserService getUserById '{params,returnObj,throwExp,cost}' -x 2

# 只看入参
watch com.example.UserService getUserById '{params}'

# 只看返回值
watch com.example.UserService getUserById '{returnObj}'

五、JVM / 线程 / CPU 问题

bash 复制代码
# 实时面板(CPU、线程、内存、GC 一站式)
dashboard

# 查看所有线程
thread

# 查 CPU 占用最高的 3 个线程
thread -n 3

# 查死锁线程
thread -b

# 查看 GC 情况
gc

六、谁调用了我?(调用栈)

bash 复制代码
# 查看方法被谁调用
stack com.example.UserService getUserById

七、热更新(线上紧急修复)

bash 复制代码
# 1. 反编译出源码
jad --source-only com.example.UserService > /tmp/UserService.java

# 2. 修改代码
vim /tmp/UserService.java

# 3. 编译
mc /tmp/UserService.java -d /tmp

# 4. 热加载替换
redefine /tmp/com/example/UserService.class

八、Spring 专用

bash 复制代码
# 列出所有 Spring Bean
springBean list

# 查看 Bean 信息
springBean -i userService

九、排查 Jar 包冲突

bash 复制代码
# 查看类来自哪个 Jar
sc -d com.example.UserService

# 查看类加载器树
classloader -t

十、快速记忆万能组合(记住这 5 个就够 90% 场景)

  1. 看代码 → jad
  2. 看入参/返回值 → watch
  3. 看哪一步慢 → trace
  4. 看谁调用 → stack
  5. 看 JVM/CPU → dashboard

总结

  • 线上出问题 :先 dashboard 看整体,再 trace/watch 定位具体方法
  • 代码不一致 :直接 jad
  • 接口慢 :trace
  • 不知道参数对不对 :watch
相关推荐
零基础12310 分钟前
PDF 处理工具全攻略:pdf24、PDFgear、Adobe Acrobat DC 与 Stirling-PDF 深度对比
java·开发语言·pdf
SL_staff25 分钟前
制造业数字化协同:为什么甘特图只是起点,不是终点
java·开源·全栈
anew___42 分钟前
《从零手写操作系统 (29):管道与重定向进阶——命名管道、Here Document与Shell语法扩展》
java·开发语言·前端·javascript·网络
Mikko71 小时前
JVM 线上排查实战(六):JFR 怎么用?JDK 8 要不要加 UnlockCommercialFeatures、jfr 命令在哪、录的文件为什么读不了
java·运维·jvm·后端
奇牙coding1 小时前
GPT-5.5 API 报 401 但 GPT-5.4 正常怎么办?不是 Key 失效,是 Organization 头的强制校验变了
java·网络·gpt·ai
a努力。1 小时前
Context-State-Memory三重信息架构揭秘
java·服务器·前端
captain3762 小时前
Maven
java·后端·idea
liangshanbo12152 小时前
主系统登录后,子系统怎么实现自动登录?
java·网络·数据库
ShineWinsu2 小时前
对于Redis:缓存的解析
java·redis·缓存·缓存穿透·缓存击穿·缓存雪崩·缓存预热
rannn_1112 小时前
【Java面试题】高频面试题1|Java 后端、MySQL、Redis 与 RAG 面试整理
java·jvm·数据库·后端·面试