1. 安装 Arthas
方法一:通过脚本安装
- 打开终端(Linux/Mac)或命令提示符(Windows)。
- 下载并运行安装脚本:
curl -O https://arthas.aliyun.com/arthas-boot.jar- 启动 Arthas:
java -jar arthas-boot.jar方法二:手动下载
- 访问 Arthas 官方 GitHub 或 Arthas 官网。
- 下载最新版本的
arthas-boot.jar文件。 - 使用以下命令启动:
java -jar arthas-boot.jar2. 快速入门
步骤 1:选择目标 Java 进程
- 启动 Arthas 后,它会列出当前机器上所有的 Java 进程。
- 按照提示输入目标 Java 进程的编号(PID),例如:
Please select the target process: 1步骤 2:常用命令
以下是一些常用的 Arthas 命令及其用途:
- 查看类加载信息
sc -d <class-name>示例:
sc -d com.example.MyClass- 查看方法调用
sm <class-name>示例:
sm com.example.MyClass- 监控方法执行
watch <class-name> <method-name> '{params, returnObj, throwExp}'示例:
watch com.example.MyClass myMethod '{params, returnObj}'- 查看线程状态
thread查看某个线程的堆栈:
thread <thread-id>- 动态修改日志级别
logger --name <logger-name> --level <level>示例:
logger --name ROOT --level DEBUG- 查看 JVM 信息
jvm- 退出 Arthas
stop3. 示例场景
场景 1:排查方法性能问题
假设我们怀疑 com.example.MyService#process 方法性能有问题:
- 使用
watch命令监控方法入参、返回值和耗时:
watch com.example.MyService process '{params, returnObj, cost}' -x 3-x 3表示统计方法调用的耗时。
场景 2:排查死锁问题
- 使用
thread命令查看线程状态:
thread- 如果发现死锁,使用以下命令定位死锁线程:
thread -b场景 3:动态调整日志级别
- 动态将日志级别改为 DEBUG:
logger --name com.example.MyLogger --level DEBUG4. 高级功能
热更新代码
Arthas 支持在不重启应用的情况下热更新代码:
- 使用
jad反编译类:
jad com.example.MyClass- 修改代码后,使用
redefine加载新代码:
redefine /path/to/MyClass.class火焰图分析
Arthas 提供了生成火焰图的功能,用于分析性能瓶颈:
profiler start运行一段时间后停止并生成火焰图:
profiler stop5. 注意事项
- 权限问题:确保运行 Arthas 的用户有权限访问目标 Java 进程。
- 生产环境:谨慎使用热更新功能,避免对生产环境造成影响。
- 版本兼容性:确保 Arthas 版本与目标 JDK 版本兼容。
6. 参考资料
- 官方文档:Arthas 官网
- GitHub 仓库:https://github.com/alibaba/arthas










