arthas使用指南

简介

Arthas是一款功能强大的在线监控和诊断工具,它能够以全局视角实时查看应用的负载、内存使用情况、垃圾回收状态以及线程信息。更为出色的是,它能够在不修改应用程序代码的前提下,对业务问题进行深入诊断。这包括但不限于查看方法调用的输入输出参数、捕获异常、监测方法执行的时间消耗以及类加载信息等。使用Arthas,可以显著提高线上问题的排查效率。

Arthas官网:https://arthas.aliyun.com/doc/

下面介绍几种本人在工作中常用的命令。

使用

安装以及启动

// 下载arthas包
curl -O https://arthas.aliyun.com/arthas-boot.jar
// 启动arthas
java -jar arthas-boot.jar

1. 热部署

(1)安装arthas idea插件
在这里插入图片描述
(2)配置插件
在这里插入图片描述
如果项目中有用到oss那么就配置,如果没有请看这里: https://arthas.aliyun.com/doc/retransform.html#%E4%B8%8A%E4%BC%A0-class-%E6%96%87%E4%BB%B6%E5%88%B0%E6%9C%8D%E5%8A%A1%E5%99%A8%E7%9A%84%E6%8A%80%E5%B7%A7

(3)重新编译需要替换的类(很重要!!),然后生成热部署替换命令
在这里插入图片描述
命令类似于这样:

curl -Lk  "http://new-yoofuu.oss-cn-shanghai.aliyuncs.com/arthas/cd6945ca-ae7c-40fc-bc0b-6a9f1184e?Expires=1706173183&OSSAccessKeyId=LTAI4GKJXbS5R9gbdKNA3QNq&Signature=R7YrVvR3SRfxSq6v4a%2BEz6W0G2s%3D"  | base64 --decode >arthas-idea-plugin-hot-swap.sh;chmod a+x arthas-idea-plugin-hot-swap.sh;./arthas-idea-plugin-hot-swap.sh;

(4)在服务器中执行命令
执行成功如下:
在这里插入图片描述

注意点

热部署不能改变类的元信息,例如方法、类名等。

2. jad反编译

通常用于验证线上运行的代码是否和本地代码一致。

jad 全类名

3. trace

用于监控方法体内,每一步执行耗时
在这里插入图片描述

4. watch

用于监控方法的入参以及出参。

参数名称参数说明
class-pattern类名表达式匹配
method-pattern函数名表达式匹配
express观察表达式,默认值:{params, target, returnObj}
condition-express条件表达式
[b]函数调用之前观察
[e]函数异常之后观察
[s]函数返回之后观察
[f]函数结束之后(正常返回和异常返回)观察
[E]开启正则表达式匹配,默认为通配符匹配
[x:]指定输出结果的属性遍历深度,默认为 1,最大值是 4
[m <arg>]指定 Class 最大匹配数量,默认值为 50。长格式为[maxMatch <arg>]
  • express
    • params:参数
    • target:代表当前对象
    • returnObj:返回值
    • throwExp:抛出的异常

使用示例:

watch classpath methodName "{params,target,returnObj,throwExp}" -x 4 -b -s -n <次数>

5. profiler

用于生成火焰图,查看执行链路耗时
在这里插入图片描述
平顶代表耗时比较久。

5. vmtool

用于监控和操作JVM。

  • 20
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
arthas 是一款开源的Java诊断工具,它主要用于分析、调试和监控Java应用程序。以下是关于如何使用 arthas指南: 1. 安装和启动:首先,我们需要安装 arthas。它支持多种安装方式,包括使用Maven,或者直接下载可执行的jar文件。安装完成后,可以使用命令行工具或者图形化的界面来启动 arthas。 2. 连接到目标应用程序:在启动 arthas 后,我们需要连接到目标应用程序。可以通过输入目标的进程ID或者应用程序的名称进行连接。arthas 会自动分析目标应用程序,并加载相关的类和方法。 3. 进行诊断和调试:连接成功后,可以开始进行诊断和调试操作。arthas 提供了丰富的命令和功能,包括查看线程状态、打印变量值、监控方法执行、动态修改类和方法等。通过这些功能,可以快速定位和解决应用程序的问题。 4. 了解应用程序的状态:arthas 还提供了一些用于了解应用程序状态的功能。比如,可以查看应用程序的内存使用情况、线程池的状态、类加载信息等。这些信息可以帮助我们了解应用程序的运行状况,以及可能存在的性能问题。 5. 监控和分析:arthas 还支持对应用程序的监控和分析。可以通过设置触发条件,来监控指定的方法执行。同时,arthas 会收集和展示方法的执行时间、调用次数等统计信息,帮助我们发现性能瓶颈和潜在的问题。 总结来说,arthas 是一个功能强大的Java诊断工具,它可以帮助我们快速定位和解决应用程序的问题。通过其丰富的命令和功能,我们可以进行诊断、调试、监控和分析操作,从而提高应用程序的可靠性和性能。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

倜傥村的少年

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

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

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

打赏作者

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

抵扣说明:

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

余额充值