(性能工具)arthas Java诊断工具

Arthas到底是什么

Arthas 是Alibaba开源的Java诊断工具,采用命令行交互模式,提供了丰富的功能,是排查jvm相关问题的利器。

下面先列举一下它能做的一些事情:

  • 提供性能看板,包括线程、cpu、内存等信息,并且会定时的刷新。
  • 根据各种条件查看线程快照。比如找出cpu占用率最高的n个线程等
  • 输出jvm的各种信息,如gc算法、jdk版本、ClassPath等
  • 查看/设置sysprop和sysenv
  • 查看某个类的静态属性,也可以通过ognl语法执行一些语句
  • 查看已加载的类的详细信息,比如这个类从哪个jar包加载的。也可以查看类的方法的信息
  • dump某个类的字节码到指定目录
  • 直接反编译指定的类
  • 查看类加载器的一些信息
  • 可以让jvm重新加载某个类
  • 监控方法的执行,同时可以获取到执行的入参、出参以及抛出的异常
  • 追踪方法执行的调用栈,以及各个方法的调用时间

安装arthas

#下载:
curl -O https://alibaba.github.io/arthas/arthas-boot.jar
#启动:
java -jar arthas-boot.jar
# 使用阿里云maven仓库拉取
java -jar arthas-boot.jar --repo-mirror aliyun --use-http

使用trace命令对可疑方法进行耗时分析

trace cn.xxxx.service.platform.authority.filter.AuthenticationFilter doFilterInternal

(性能工具)arthas Java诊断工具
发现是 `javax.servlet.FilterChain:doFilter 耗时时间过长

使用trace命令对可疑方法再次进行分析

trace javax.servlet.FilterChain doFilter

发现图中的baidu openrasp方法耗时过长,怀疑是rasp问题
通过去掉java启动参数中的-javaagent:rasp.jar

(性能工具)arthas Java诊断工具

上一篇:[AHK]获取下单窗口的控件列表


下一篇:讲真,这两款idea插件,能治愈你英语不好的病(1)