Arthas学习&实战
1. Arthas使用
启动arthas
curl -O https://arthas.aliyun.com/arthas-boot.jar
java -jar arthas-boot.jar
选择你要监控的java程序(启动arthas的用户和需要监控的用户必须是同一个)
安装idea插件arthas idea
可以选中方法复制命令
常用的方法
2.1 dashboard实时监控面板
dashboard:打开实时监控面板( 具体含义见:dashboard | arthas (aliyun.com) )
2.2 thread查看线程情况
- thread -b:查看死锁情况
- thread -n 1 :查看消耗cpu资源最多的【1个】线程
2.3 jad反编译查看线上代码
通过jad
可以反编译正在运行的代码,我们去idea里面粘贴一下全类名
使用命令jad 全类名
就可以反编译正在执行的代码了,查看自己的代码是否和线下不一样
2.4 watch观察函数入/出参
通过watch命令可以观察函数的入参、出参、异常信息等
我们在idea
里面用插件复制一下命令
执行一下,可以看到能够抓取到方法的参数
2.5 trace耗时统计
通过trace命令我们可以对指定方法及其调用方法进行耗时统计,并且会将耗时最长的方法进行高亮
这里一样我们用插件复制要抓取的方法的命令
2.6 stack查看调用栈
stack命令可以看到方法的调用过程,例如我们写了条件分支,通过stack
就可以看到走了哪里
2.7 monitor 查看执行成功次数
在压测的时候可以用来看接口的成功率
2.8 tt时空隧道
tt命令可以重放之前的请求,用来诊断具体的请求情况
可以看到已经记录了前五次方法调用,现在我们就可以去分析之前的调用,命令后面接index
如果我们想要回放这次请求只需要tt -i 1000 p
,就能调用指定方法再按照之前的参数再执行一次
2.9 profiler热力图
YeZQ-1696605375663)]
可以看到已经记录了前五次方法调用,现在我们就可以去分析之前的调用,命令后面接index
[外链图片转存中…(img-iTNgtXOA-1696605375663)]
如果我们想要回放这次请求只需要tt -i 1000 p
,就能调用指定方法再按照之前的参数再执行一次
2.9 profiler热力图
[外链图片转存中…(img-AGMOfowv-1696605375663)]