阿里云 ACK 环境 Arthas 在线调试指南

一、Arthas 安装与启动

  1. 进入 ACK 容器(服务器)终端后,下载 arthas-boot.jar

    curl -O https://arthas.aliyun.com/arthas-boot.jar

  2. 启动并接入目标进程

    java -jar arthas-boot.jar

若服务已配置 JDK 环境,执行 java -jar arthas-boot.jar 后正常接入目标进程,则说明 Arthas 已成功启动。接下来可直接参考第 4 部分「常用命令」进行问题排查。

二、常见报错处理

报错现象

启动过程中出现类似 tools.jar 找不到的错误。

原因分析:查询java所在的目录

复制代码
which java

如果输出结果指向的是 JRE 环境而非 JDK,则缺少 tools.jar,导致 Arthas 无法正常运行。

解决方案

步骤 操作
① 找到项目中的 Dockerfile 文件
② 将基础镜像从 JRE 改为 JDK,例如: FROM openjdk:8u201-jre-alpine → FROM openjdk:8u201-jdk-alpine
③ 重新构建镜像并上传至 ACR 镜像仓库
④ 部署更新后的镜像即可

建议 :若生产环境不便更换 JDK,也可通过 docker cp 将宿主机的 tools.jar 复制到容器内临时解决,但推荐直接修改 Dockerfile 永久修复。

三、常用命令速查

使用前提 :执行以下 Arthas 命令后,需要主动触发目标方法的调用(如调用对应接口、执行定时任务、点击页面按钮等),命令才会输出监控结果。Arthas 命令本身仅负责监听,不会主动执行业务逻辑。

1. 查看某行代码的执行状态(true/false)

复制代码
trace --class 类全名 --method 方法名 --line 行数 -n 1

2. 查看方法入参

复制代码
watch 类全名 方法名 "{params}" -x 2

3. 查看方法返回值

复制代码
watch 类全名 方法名 "returnObj"

4. 同时查看入参和返回值

复制代码
watch 类全名 方法名 "{params, returnObj}" -x 2

四、快速参考卡片

复制代码
# ========== 安装启动 ==========
curl -O https://arthas.aliyun.com/arthas-boot.jar
java -jar arthas-boot.jar

# ========== 调试命令 ==========
trace --class com.example.Demo --method process --line 25 -n 1   # 查看第25行执行状态
watch com.example.Demo process "{params}" -x 2                    # 查看入参
watch com.example.Demo process "returnObj"                        # 查看返回值
watch com.example.Demo process "{params, returnObj}" -x 2         # 同时查看

# ========== 排查问题 ==========
thread -n 5       # 查看CPU占用最高的5个线程
jad com.example.Demo    # 反编译查看源码
相关推荐
熊猫钓鱼>_>27 分钟前
普通用户视角的端侧智能体验手记【鸿蒙心迹】
开发语言·人工智能·华为·智能手机·性能优化·ai编程·harmonyos
瑞雪兆丰年兮28 分钟前
JavaWeb-day13-SpringBootWeb事务管理&AOP
java·开发语言·springboot·javaweb·事务·web·aop
用户019027581612 小时前
Dify / Coze 低代码 Agent 怎么接 A 股行情?
python
布莱克6052 小时前
Swift 常量详解:从 let 到编译期优化
服务器·开发语言·ssh·swift·常量·let
Dumbness2 小时前
不传 day 参数,座位图显示全空:用 Python 标准库手写 Web 框架,请求到业务代码前的 5 个细节
后端·python
布莱克6052 小时前
Swift 可选类型(Optionals)详解:从原理到实战
开发语言·安全·ssh·swift·optional·可选类型
databook3 小时前
收上来一堆 Excel,怎么保证没改错
python·数据分析
2601_967987374 小时前
Python 教程:默认字典(defaultdict)全维度深度指南
python·性能优化·数据处理·collections·defaultdict
鱼听禅4 小时前
Ubuntu安装YOLOv8进行菌落识别训练
linux·python·yolo·ubuntu
ZhengEnCi4 小时前
Agent 查不出代码 Bug 怎么办:一份带时间戳的调试日志与读日志排查流程
python·ai编程