
一、启动 基础# 一键启动直接 attach 目标进程curl-Ohttps://arthas.aliyun.com/arthas-boot.jarjava-jararthas-boot.jar# 退出 Arthas不影响 Java 进程quit# 彻底关闭 Arthas 服务stop二、查看类 / 方法最常用# 1. 查看 JVM 已加载的类支持模糊匹配sc *UserService* sc-dcom.example.UserService# 详细信息Jar 路径、类加载器# 2. 反编译查看线上真实代码神器jad com.example.UserService jad com.example.UserService getUserById# 只看方法三、排查性能 / 慢接口必用# 1. 查看方法调用链路 每步耗时trace com.example.UserService getUserById# 2. 监控方法耗时、次数、失败率monitor com.example.UserService getUserById# 3. 统计方法调用时间分布tt-tcom.example.UserService getUserById四、查看入参、返回值、异常线上调试神器# 万能命令入参 返回值 异常 耗时watchcom.example.UserService getUserById{params,returnObj,throwExp,cost}-x2# 只看入参watchcom.example.UserService getUserById{params}# 只看返回值watchcom.example.UserService getUserById{returnObj}五、JVM / 线程 / CPU 问题# 实时面板CPU、线程、内存、GC 一站式dashboard# 查看所有线程thread# 查 CPU 占用最高的 3 个线程thread-n3# 查死锁线程thread-b# 查看 GC 情况gc六、谁调用了我调用栈# 查看方法被谁调用stack com.example.UserService getUserById七、热更新线上紧急修复# 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 专用# 列出所有 Spring BeanspringBean list# 查看 Bean 信息springBean-iuserService九、排查 Jar 包冲突# 查看类来自哪个 Jarsc-dcom.example.UserService# 查看类加载器树classloader-t十、快速记忆万能组合记住这 5 个就够 90% 场景看代码→jad看入参/返回值→watch看哪一步慢→trace看谁调用→stack看 JVM/CPU→dashboard总结线上出问题先dashboard看整体再trace/watch定位具体方法代码不一致直接jad接口慢trace不知道参数对不对watch