Arthas使用教程——日常常用命令

Monitor

命令通过字节码增强技术来实现的,会在指定类的方法中插入一些切面来实现数据统计和观测,因此在线上、预发使用时,请尽量明确需要观测的类、方法以及条件,诊断结束要执行 stop 或将增强过的类执行 reset 命令。

对匹配 class-pattern/method-pattern/condition-express的类、方法的调用进行监控。

您提供的是关于Java方法性能监控的维度和参数说明。下面是对每个维度和参数的详细解释:

监控维度说明

  • timestamp: 时间戳,表示数据收集的具体时间点。
  • class: Java类,表示被监控的方法所属的类。
  • method: 方法,包括构造方法和普通方法,表示被监控的具体方法。
  • total: 调用次数,表示在统计周期内方法被调用的总次数。
  • success: 成功次数,表示在统计周期内方法成功执行的次数。
  • fail: 失败次数,表示在统计周期内方法执行失败的次数。
  • rt: 平均响应时间(RT),表示方法执行的平均时间。
  • fail-rate: 失败率,表示方法执行失败的比例。

参数说明

  • c:: 统计周期(cycle of output),指定输出统计结果的时间间隔,整型参数值。例如,[c:120] 表示每120秒输出一次统计结果。

使用参考

  • class-pattern: 类名表达式匹配,用于指定要监控的Java类的匹配模式。
  • method-pattern: 方法名表达式匹配,用于指定要监控的方法的匹配模式。
  • condition-express: 条件表达式,用于指定额外的监控条件。
  • [E]: 开启正则表达式匹配,默认为通配符匹配,用于指定匹配模式的类型。
  • [b]: 在方法调用之前计算 condition-express,用于指定条件表达式的计算时机。
  • [m ]: 指定 Class 最大匹配数量,长格式为 [maxMatch <arg>],用于限制匹配的类的数量。

使用参考

$ monitor -c 5 demo.MathGame primeFactors
Press Ctrl+C to abort.
Affect(class-cnt:1 , method-cnt:1) cost in 94 ms.
 timestamp            class          method        total  success  fail  avg-rt(ms)  fail-rate
-----------------------------------------------------------------------------------------------
 2018-12-03 19:06:38  demo.MathGame  primeFactors  5      1        4     1.15        80.00%

 timestamp            class          method        total  success  fail  avg-rt(ms)  fail-rate
-----------------------------------------------------------------------------------------------
 2018-12-03 19:06:43  demo.MathGame  primeFactors  5      3        2     42.29       40.00%

 timestamp            class          method        total  success  fail  avg-rt(ms)  fail-rate
-----------------------------------------------------------------------------------------------
 2018-12-03 19:06:48  demo.MathGame  primeFactors  5      3        2     67.92       40.00%

 timestamp            class          method        total  success  fail  avg-rt(ms)  fail-rate
-----------------------------------------------------------------------------------------------
 2018-12-03 19:06:53  demo.MathGame  primeFactors  5      2        3     0.25<
### Windows 下 Arthas 使用教程 #### 工具简介 Arthas 是阿里巴巴开源的一款强大的 Java 线上诊断工具,适用于 JDK 6 及以上版本,并兼容多种操作系统,包括 Linux、Mac 和 Windows。它通过命令行交互模式提供了一系列功能,帮助开发者快速定位和解决运行时问题[^1]。 #### 安装与启动 在 Windows 环境下安装并使用 Arthas 的步骤如下: 1. **下载 Arthas 启动器** 使用 `curl` 命令或者浏览器手动下载 Arthas 启动 JAR 文件: ```bash curl -O https://arthas.aliyun.com/arthas-boot.jar ``` 2. **启动 Arthas** 运行以下命令以启动 Arthas 并附加到指定的目标 JVM 进程: ```bash java -jar arthas-boot.jar ``` 此时会列出当前系统中所有的 Java 进程供选择。输入对应的进程编号即可完成连接[^2]。 3. **处理权限问题** 如果遇到无法 attach 到目标进程的情况,可能是因为权限不足。可以通过以下方式解决: ```bash sudo su admin && java -jar arthas-boot.jar ``` 或者: ```bash sudo -u admin -EH java -jar arthas-boot.jar ``` 若仍存在问题,可查阅日志文件以获取更多信息:`~/logs/arthas/`[^5]。 4. **加速下载(可选)** 对于网络较慢的环境,可以切换至阿里云镜像源: ```bash java -jar arthas-boot.jar --repo-mirror aliyun --use-http ``` #### 功能介绍 以下是 Arthas 提供的一些常用功能及其用途: 1. **dashboard**: 实时监控系统的性能指标,展示 CPU、内存、线程等状态信息。 ```bash dashboard ``` 2. **jad**: 反编译 `.class` 文件以便查看其原始代码结构。 ```bash jad com.example.MyClass ``` 3. **thread**: 分析线程的状态以及死锁情况。 ```bash thread -n 10 ``` 4. **watch**: 跟踪方法调用过程中的入参和返回值。 ```bash watch com.example.MyService handleRequest "{params, returnObj}" true ``` 当不再需要继续操作时,可通过执行 `stop` 指令安全退出所有客户端连接。需要注意的是,在关闭服务前已增强的类会被自动重置,而重新定义的内容则需手动清理[^4]。 --- ### 注意事项 - 确保执行该程序的用户拥有足够的权限访问目标进程。 - 如遇异常状况,请及时检查日志记录路径下的相关内容用于排查原因。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

庄隐

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值