Appearance
1 Arthas 简介
Arthas 是阿里巴巴开源的 Java 诊断工具,可以在不重启应用的情况下实时诊断 Java 应用问题。
适用场景:
- 服务频繁崩溃或重启
- CPU 占用过高
- 内存溢出(OOM)
- 接口响应缓慢
- 线程死锁
主要功能:
- 查看 JVM 实时运行状态
- 监控线程状态,排查死锁
- 查看方法调用参数、返回值、异常
- 生成堆转储文件分析内存问题
2 安装 Arthas
bash
# 下载启动脚本到 /opt 目录
curl -o /opt/arthas-boot.jar https://arthas.aliyun.com/arthas-boot.jar3 一键诊断脚本
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
EOF3.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