[arthas下载地址]:
下载完成 解压即可使用
java -Dfile.encoding=UTF-8 -jar arthas-boot.jar
如果直接使用java -jar启动 可能会出现乱码
启动成功之后 arthas会自动扫描当前服务器上的jvm进程 选择需要挂载的jvm进程
假如需要挂在坐标【1】的jvm进程 直接在控制台输入1 然后回车
显示这样的beaner就算是挂载成功
在这只列举几个常用命令 其余的可以去官网看示例
用法:直接控制台输入dashboard命令 可以查看当前服务器的cpu和内存信息 可以理解为是top+gcm的结合体
trace命令可以追踪指定类下方法的链路调用关系 并分析出此链路中耗时占比较大的调用链
用法:trce 类全限定名 方法名
示例:trace com.llf.controller.ArthasTest trace
watch命令可以动态查看指定方法的出入参数信息 并打印出来
特别说明:
-b
函数调用前,-e
函数异常后,-s
函数返回后,-f
函数结束后-b
、-e
、-s
默认关闭,-f
默认打开,当指定观察点被打开后,在相应事件点会对观察表达式进行求值并输出函数入参
和函数出参
的区别,有可能在中间被修改导致前后不一致,除了 -b
事件点 params
代表函数入参外,其余事件都代表函数出参-b
时,由于观察事件点是在函数调用前,此时返回值或异常均不存在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