arthas 命令
时间: 2025-05-13 07:26:42 浏览: 41
<think>好的,用户想了解Arthas的命令列表及用法。首先,我需要回顾之前提供的引用内容,特别是引用[1]和引用[3],因为它们提到了具体的命令和用法。
用户的问题是关于Arthas命令的列表和使用方法,所以需要先整理出主要的命令及其功能。引用[1]中提到了quit、shutdown、stop、monitor、watch、trace、stack、tt等命令,这些是基础且常用的。需要逐个解释这些命令的作用,比如monitor用于监控方法执行,watch用于观察数据,trace用于追踪调用路径耗时等。
接下来,引用[3]详细说明了trace命令的用法,包括如何过滤耗时过长的调用,这可以作为例子来具体说明命令的参数使用,比如#cost>100。同时,用户可能需要知道如何组合使用条件表达式,这里可以结合ognl表达式举例。
用户可能还需要知道如何获取帮助信息,比如使用help命令,这在引用中没有提到,但根据常识,应该补充进去。另外,引用[5]提到的reset命令用于清除增强的类,这也是一个重要的点,需要包含在命令列表中。
还需要考虑用户的实际使用场景,比如线上诊断时需要注意的事项,如引用[1]提到的使用后执行stop或reset,避免影响性能。这部分应该作为注意事项提醒用户。
最后,生成相关问题时要覆盖用户可能进一步询问的内容,比如具体某个命令的详细参数、如何排查性能问题、与日志工具结合使用等。确保问题有针对性,帮助用户深入理解Arthas的功能。</think>### Arthas 命令列表及用法详解
Arthas 是阿里巴巴开源的 Java 诊断工具,提供丰富的命令用于监控、分析和排查 Java 应用的运行时状态。以下是常用命令的分类说明及用法示例:
---
#### 一、**基础控制命令**
1. **`quit`**
退出当前 Arthas 客户端,不影响其他已连接的客户端[^1]。
2. **`shutdown`**
关闭 Arthas 服务端,所有客户端均会退出[^1]。
3. **`stop`**
停止当前诊断会话,并重置被增强的类(避免对线上环境造成性能影响)[^1][^5]。
---
#### 二、**核心诊断命令**
1. **`monitor`**
**功能**:统计方法执行的耗时、成功率等指标。
**示例**:
```bash
monitor com.example.Service * -c 5 # 每5秒统计一次Service类下所有方法的执行情况
```
2. **`watch`**
**功能**:观察方法调用的入参、返回值及异常信息。支持 OGNL 表达式过滤。
**示例**:
```bash
watch com.example.UserService getUserById "{params, returnObj}" -x 2 # 打印参数和返回值,展开层级为2
```
3. **`trace`**
**功能**:追踪方法内部调用链路,并统计各节点耗时。支持按耗时过滤(如 `#cost>100`)。
**示例**:
```bash
trace *MathUtils calculate* '#cost>50' # 追踪所有calculate开头的方法,耗时超过50ms时输出[^3]
```
4. **`stack`**
**功能**:输出当前方法被调用的完整堆栈路径。
**示例**:
```bash
stack com.example.OrderService createOrder # 显示createOrder方法的调用来源
```
5. **`tt`** (Time Tunnel)
**功能**:记录方法调用的入参、返回值及上下文,支持回放和对比历史调用。
**示例**:
```bash
tt -t com.example.PaymentService pay # 记录pay方法的每次调用
tt -i 1001 -p # 回放索引为1001的调用记录
```
---
#### 三、**高级分析与调优**
1. **`jad`**
**功能**:反编译指定类的字节码,支持 `--source-only` 仅显示源码。
**示例**:
```bash
jad java.lang.String --source-only # 反编译String类源码[^4]
```
2. **`redefine`**
**功能**:热更新已加载的类(需结合 `mc` 命令编译新代码)。
**步骤**:
```bash
jad --source-only com.example.Config > Config.java # 导出源码
mc Config.java -d /tmp # 编译修改后的代码
redefine /tmp/Config.class # 热更新类
```
3. **`reset`**
**功能**:清除指定类的增强字节码,恢复原始状态。
**示例**:
```bash
reset *TradeService* # 重置所有匹配类名的增强类[^5]
```
---
#### 四、**注意事项**
1. **性能影响**:监控命令通过字节码增强实现,需明确监控范围,诊断后及时执行 `stop` 或 `reset`[^1]。
2. **正则匹配**:使用 `-E` 开启正则表达式匹配类名/方法名(默认通配符匹配)[^3]。
3. **帮助查询**:通过 `help [command]` 查看具体命令的详细参数(如 `help watch`)。
---
阅读全文
相关推荐

















