arthas 线上排查问题基本使用

2023-12-17 13:43:00

一、下载

[arthas下载地址]:

下载完成 解压即可使用

二、启动

java -Dfile.encoding=UTF-8 -jar arthas-boot.jar

如果直接使用java -jar启动 可能会出现乱码

三、使用

启动成功之后 arthas会自动扫描当前服务器上的jvm进程 选择需要挂载的jvm进程

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

假如需要挂在坐标【1】的jvm进程 直接在控制台输入1 然后回车

在这里插入图片描述

显示这样的beaner就算是挂载成功

四、常用命令

[命令列表 | arthas (aliyun.com)]:

在这只列举几个常用命令 其余的可以去官网看示例

4.1 dashboard

用法:直接控制台输入dashboard命令 可以查看当前服务器的cpu和内存信息 可以理解为是top+gcm的结合体

在这里插入图片描述

4.2 trace

trace命令可以追踪指定类下方法的链路调用关系 并分析出此链路中耗时占比较大的调用链

用法:trce 类全限定名 方法名

示例:trace com.llf.controller.ArthasTest trace

在这里插入图片描述

4.3 watch

watch命令可以动态查看指定方法的出入参数信息 并打印出来

特别说明:

  • watch 命令定义了 4 个观察事件点,即 -b 函数调用前,-e 函数异常后,-s 函数返回后,-f 函数结束后
  • 4 个观察事件点 -b-e-s 默认关闭,-f 默认打开,当指定观察点被打开后,在相应事件点会对观察表达式进行求值并输出
  • 这里要注意函数入参函数出参的区别,有可能在中间被修改导致前后不一致,除了 -b 事件点 params 代表函数入参外,其余事件都代表函数出参
  • 当使用 -b 时,由于观察事件点是在函数调用前,此时返回值或异常均不存在
  • 在 watch 命令的结果里,会打印出location信息。location有三种可能值:AtEnterAtExitAtExceptionExit。对应函数入口,函数正常 return,函数抛出异常

查看入参

? 用法:watch 类全限定名 方法名 -b -m 1 (1表示最大匹配类数量 默认50 必输)

查看出参

? 用法: watch 类全限定名 方法名 -m 1 (1表示最大匹配类数量 默认50)

示例:

watch com.llf.controller.ArthasTest index -b -m 4
在这里插入图片描述

watch com.llf.controller.ArthasTest index -s -m 4

在这里插入图片描述

文章来源:https://blog.csdn.net/Amazing66/article/details/135043347
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。