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就算是挂载成功
四、常用命令
在这只列举几个常用命令 其余的可以去官网看示例
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
有三种可能值:AtEnter
,AtExit
,AtExceptionExit
。对应函数入口,函数正常 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
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!