线上问题排查利器Arthas

官方文档

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


curl -O https://alibaba.github.io/arthas/arthas-boot.jar
java -jar arthas-boot.jar
  • 执行该程序的用户需要和目标进程具有相同的权限。比如以admin用户来执行:sudo su admin && java -jar arthas-boot.jar 或 sudo -u admin -EH java -jar arthas-boot.jar
  • 如果attach不上目标进程,可以查看~/logs/arthas/ 目录下的日志。
  • 如果下载速度比较慢,可以使用aliyun的镜像:java -jar arthas-boot.jar --repo-mirror aliyun --use-http
  • java -jar arthas-boot.jar -h 打印更多参数信息。

查看cpu占用高的3个线程 类似top -H,但是能看到堆栈信息,不用先找到线程id再从jstack线程堆栈中查找

thread -n 3

跟踪某个方法的调用时间【显示的条数】

trace 包名.类名 方法名 [-n 数字]

进行获取执行方法的参数【参数第几个】然后获取数据【-n 1为只输出一条】

#$ watch 包名.类名 方法名 params[0].get(0).age -n 1

执行的系统环境变量

#sysprop和sysenv
#通过sysprop可以查看所有的系统变量,也可以设置某个系统变量。
#同理,通过sysenv可以查看所有的操作系统环境变量,也可以查看设置某个环境变量。

jvm

#通过jvm命令直接输出当前jvm的各种信息。

上一篇:用arthas查看JVM已加载的类及方法信息


下一篇:一款阿里开源的 Java 诊断工具