Java教程

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

本文主要是介绍(性能工具)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

在这里插入图片描述
发现是 `javax.servlet.FilterChain:doFilter 耗时时间过长

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

trace javax.servlet.FilterChain doFilter

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

在这里插入图片描述

这篇关于(性能工具)arthas Java诊断工具的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!