Skip to content

1 Arthas 简介

Arthas 是阿里巴巴开源的 Java 诊断工具,可以在不重启应用的情况下实时诊断 Java 应用问题。

适用场景:

  • 服务频繁崩溃或重启
  • CPU 占用过高
  • 内存溢出(OOM)
  • 接口响应缓慢
  • 线程死锁

主要功能:

  • 查看 JVM 实时运行状态
  • 监控线程状态,排查死锁
  • 查看方法调用参数、返回值、异常
  • 生成堆转储文件分析内存问题

2 安装 Arthas

bash
# 下载启动脚本到 /opt 目录
curl -o /opt/arthas-boot.jar https://arthas.aliyun.com/arthas-boot.jar

3 一键诊断脚本

3.1 创建命令文件

bash
cat > /tmp/arthas_diag.txt <<'EOF'
dashboard
thread -b
jvm
thread --all
heapdump --live /tmp/oom_$(date +%Y%m%d_%H%M%S).hprof
EOF

3.2 执行批处理并保存输出

bash
# 将 服务名 替换为实际名称,如 jpwise-admin
java -jar /opt/arthas-boot.jar $(pgrep -f 服务名) -b -i /tmp/arthas_diag.txt > /tmp/diagnosis_$(date +%Y%m%d_%H%M%S).log 2>&1

批处理模式执行完成后会自动退出。

4 退出 Arthas(交互模式)

如果使用 java -jar /opt/arthas-boot.jar 进入交互模式,可通过以下命令退出:

bash
# 退出当前会话(Arthas 进程继续运行)
quit

# 完全关闭 Arthas(从目标进程卸载)
stop