arthas

Arthas学习&实战

1. Arthas使用

启动arthas

curl -O https://arthas.aliyun.com/arthas-boot.jar
java -jar arthas-boot.jar

选择你要监控的java程序(启动arthas的用户和需要监控的用户必须是同一个)

arthas_第1张图片

安装idea插件arthas idea

可以选中方法复制命令

arthas_第2张图片

常用的方法

2.1 dashboard实时监控面板

dashboard:打开实时监控面板( 具体含义见:dashboard | arthas (aliyun.com) )

arthas_第3张图片

2.2 thread查看线程情况

arthas_第4张图片

  • thread -b:查看死锁情况
  • thread -n 1 :查看消耗cpu资源最多的【1个】线程

2.3 jad反编译查看线上代码

通过jad可以反编译正在运行的代码,我们去idea里面粘贴一下全类名

arthas_第5张图片

使用命令jad 全类名就可以反编译正在执行的代码了,查看自己的代码是否和线下不一样

arthas_第6张图片

2.4 watch观察函数入/出参

通过watch命令可以观察函数的入参、出参、异常信息等

我们在idea里面用插件复制一下命令

arthas_第7张图片

执行一下,可以看到能够抓取到方法的参数

arthas_第8张图片

2.5 trace耗时统计

通过trace命令我们可以对指定方法及其调用方法进行耗时统计,并且会将耗时最长的方法进行高亮

这里一样我们用插件复制要抓取的方法的命令

arthas_第9张图片

2.6 stack查看调用栈

stack命令可以看到方法的调用过程,例如我们写了条件分支,通过stack就可以看到走了哪里

arthas_第10张图片

2.7 monitor 查看执行成功次数

在压测的时候可以用来看接口的成功率

arthas_第11张图片

2.8 tt时空隧道

tt命令可以重放之前的请求,用来诊断具体的请求情况

arthas_第12张图片

可以看到已经记录了前五次方法调用,现在我们就可以去分析之前的调用,命令后面接index

arthas_第13张图片

如果我们想要回放这次请求只需要tt -i 1000 p,就能调用指定方法再按照之前的参数再执行一次

2.9 profiler热力图

image-20230320001320764

YeZQ-1696605375663)]

可以看到已经记录了前五次方法调用,现在我们就可以去分析之前的调用,命令后面接index

[外链图片转存中…(img-iTNgtXOA-1696605375663)]

如果我们想要回放这次请求只需要tt -i 1000 p,就能调用指定方法再按照之前的参数再执行一次

2.9 profiler热力图

[外链图片转存中…(img-AGMOfowv-1696605375663)]

arthas_第14张图片

你可能感兴趣的:(java,arthas)