arthas 线上排查常用命令

下载arthas-boot.jar,然后用java -jar的方式启动:

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

查看方法内部执行堆栈

方法内部调用路径,并输出方法路径上的每个节点上耗时

trace com.xxx.manage.impl.UserServiceImpl getUser

查看方法出入参

watch com.xxx.manage.impl.UserServiceImpl getUser '{params,returnObj,throwExp}' -x 3

查找类的 classLoaderHash

sc -d com.xxx.manage.util.SpringContext

执行类的方法

ognl -c  31221be2 '@com.xxx.manage.util.SpringContext@getBean("userService")' -x 1

获取spring配置

ognl -c  31221be2 '#context=@com.xxx.manage.util.SpringContext@applicationContext,#context.getEnvironment().getProperty("ca.enable")'

或者

tt -t org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter invokeHandlerMethod
tt -i 1000 -w 'target.getApplicationContext().getBean("baiduSchedule").startSchedule()'

查看方法被调用堆栈

很多时候我们都知道一个方法被执行,但这个方法被执行的路径非常多,或者你根本就不知道这个方法是从那里被执行了,此时你需要的是 stack 命令。

stack com.xxx.manage.impl.UserServiceImpl getUser

查看最高占用的线程

thread -n 3

查看当前JVM的系统属性

sysprop

查看当前JVM的环境属性

sysenv

查看,更新VM诊断相关的参数

vmoption
有问题请联系hudcan@sina.com 个人网站:http://ext.123456cc.cc
原文地址:https://www.cnblogs.com/mysgk/p/15701491.html