Arthas 诊断工具实战
Arthas 是阿里巴巴开源的 Java 诊断工具,在线上问题排查中非常受欢迎——因为它不需要重启应用,不需要配置额外 agent,即连即用。
安装与启动
方式一:一键安装
方式二:IDEA 插件
在 IDEA 中安装 Arthas 插件,右键点击类方法即可生成 Arthas 命令。
核心命令
dashboard:系统全局状态
thread:线程分析
trace:方法调用链路追踪
watch:方法入参/返回值观察
stack:方法调用路径
热修复能力
jad:在线反编译
mc:内存编译器
redefine:热更新
热更新限制
热更新有以下限制:
- 不支持修改类结构(字段、方法)
- 不支持新增方法
- 不支持删除方法
- 只能修改方法体
实战案例
案例一:定位慢查询
案例二:排查内存问题
案例三:排查死锁
常用命令速查
与其他工具对比
本章小结
Arthas 的核心命令:
- dashboard:系统全局状态
- thread:线程分析
- trace:方法调用链路追踪
- watch:方法入参/返回值观察
- jad/mc/redefine:热修复能力
Arthas 是线上问题排查的利器,熟练掌握可以大大提升诊断效率。
延伸思考
Arthas 热修复能替代正常发布吗?
不能。热修复有以下限制:
- 不能修改类结构
- 可能导致内存中类不一致
- 不支持新增/删除方法
热修复只能用于紧急修复,不应作为常规发布手段。修复后仍需正常发布流程。