Arthas使用
- 方式 1:直接下载 JAR 包
|
Bash |
- 方式 2:通过 Maven 依赖(适用于开发环境)
在项目中引入依赖(仅用于开发调试,生产环境建议直接下载 JAR):
|
XML |
- 步骤 1:确保目标 Java 进程正在运行
使用 jps 或 ps -ef | grep java 查看进程 ID(PID)。
- 步骤 2:启动 Arthas 并附加到目标进程
|
Bash |
- 步骤 3:退出 Arthas
- 临时退出:输入 quit 或 exit(保留 Arthas 代理,可重新连接)。
- 彻底退出:输入 shutdown(卸载 Arthas 代理,断开所有连接)。
| 命令 | 作用 |
| dashboard | 实时监控 JVM 的线程、内存、GC、系统信息(类似 top 命令)。 |
| thread | 查看线程状态、堆栈,排查死锁或高 CPU 占用线程。 |
| memory | 显示 JVM 内存使用情况(堆、非堆、Metaspace 等)。 |
| jvm | 查看 JVM 属性、系统属性、环境变量等。 |
| 命令 | 作用 |
| trace | 追踪方法内部调用路径,显示各步骤耗时(性能分析)。 |
| watch | 观测方法调用时的入参、返回值、异常(支持条件过滤)。 |
| monitor | 统计方法调用次数、成功率、耗时等(周期性采样)。 |
| stack | 显示方法调用堆栈(类似 jstack,但可针对特定方法)。 |
| 命令 | 作用 |
| jad | 反编译已加载的类(查看源代码)。 |
| sc | 搜索类(Search Class),显示类的加载信息。 |
| sm | 搜索方法(Search Method),显示方法的详细信息。 |
| redefine | 动态加载新的 .class 文件,替换已加载的类(热修复)。 |
| 命令 | 作用 |
| profiler | 生成火焰图(需安装 async-profiler),分析性能瓶颈。 |
| jfr | 启动/停止 JDK Flight Recorder(JFR)记录,生成高级性能报告。 |
| ognl | 执行 OGNL 表达式,动态修改对象属性或调用方法(慎用)。 |
| 命令 | 作用 |
| help | 查看命令帮助文档。 |
| session | 查看当前会话信息。 |
| cls | 清空当前屏幕输出。 |
- 查看最忙的 3 个线程
|
Bash |
- 追踪方法调用链路
|
Bash |
- 观测方法入参和返回值
|
Bash |
- 反编译类
|
Bash |
- 生成火焰图
|
Bash |
- 权限问题:在 Linux/Unix 系统上,可能需要 root 权限才能 attach 到目标进程。
- 生产环境慎用:redefine 和 ognl 等命令可能破坏程序状态,建议在测试环境使用。
- 性能影响:trace、watch 等命令会增加方法调用开销,避免在高频方法上长时间使用。

628

被折叠的 条评论
为什么被折叠?



