性能测试全栈笔记:56.性能监控神器-Arthas(阿尔萨斯)

作者: admin 分类: 性能专题,测试工具 发布时间: 2022-01-12 23:06

今天给大家介绍一款阿里巴巴开源性能分析工具Arthas,中文名:阿尔萨斯,堪称神器。

官方网站:https://alibaba.github.io/arthas/index.html

以上网址不太好打开,可以用这个:https://arthas.aliyun.com/doc/index.html

首先,Arthas能做什么?(以下为官网介绍)

Arthas 是Alibaba开源的Java诊断工具,深受开发者喜爱。
当你遇到以下类似问题而束手无策时,Arthas可以帮助你解决:

  • 这个类从哪个 jar 包加载的?为什么会报各种类相关的 Exception?
  • 我改的代码为什么没有执行到?难道是我没 commit?分支搞错了?
  • 遇到问题无法在线上 debug,难道只能通过加日志再重新发布吗?
  • 线上遇到某个用户的数据处理有问题,但线上同样无法 debug,线下无法重现!
  • 是否有一个全局视角来查看系统的运行状况?
  • 有什么办法可以监控到JVM的实时运行状态?
  • 怎么快速定位应用的热点,生成火焰图?
  • 怎样直接从JVM内查找某个类的实例?

Arthas支持JDK 6+,支持Linux/Mac/Windows,采用命令行交互模式,同时提供丰富的 Tab 自动补全功能,进一步方便进行问题的定位和诊断。

下面以“我爱测试网”项目体验Arthas的用法:

1.启动项目:

2.下载arthas工具

下载方式1:wget https://alibaba.github.io/arthas/arthas-boot.jar

下载方式2:浏览器打开:https://alibaba.github.io/arthas/arthas-boot.jar,文件下载好后上传到linux服务器

蓝奏云下载:https://shanqianwl.lanzoul.com/iXIemyqy8zc

注意:第一种需安装wget组件:yum -y install wget

3.启动arthas工具

前提条件:需配置jdk环境:JDK安装及配置教程(Linux版)

执行命令:java -jar arthas-boot.jar

说明:执行成功后,arthas提供了一种命令行交互方式,arthas会检测当前服务器上的java进程,并将进程列表展示出来,用户输入对应编号(1,2,3,4…)进行选择,然后回车,红色框中,进程[1]就是tomcat进程。

第一次使用arthas会自动下载一些依赖包,等待下载完成就会进入到arthas命令行界面,如下图:

4.常用的监控命令/数据:

1)整体dashboard数据

在arthas命令行界面,输入dashboard命令,会实时展示当前tomcat的多线程状态,jvm各区域,GC情况等信息

认识:

  • 最上面是thread(线程)区:
  • 中间是menory(内存)和GC区
  • 最后是Runtime、tomcat情况

2)查看线程监控

常用参数:

  • 输入thread会显示所有线程的状态信息
  • 输入thread -n 3会显示当前最忙的3个线程 ,可以用来排查CPU消耗
  • 输入thread -b会显示当前处于blocked状态的线程,可以排查锁问题

3)jvm监控

执行命令:jvm,查看jvm详细的性能数据(java虚拟机)

4)函数耗时监控

一般来说一个接口的性能不好,其实就是接口响应时间较长造成的,具体代码中哪个函数耗时较长,我们可以使用trace命令来监控看以下。

执行命令格式:trace 类名 函数名

了解几个核心参数:

time:接口入口函数总耗时

后面一般跟关联函数。。。每个关联函数会有对应耗时,比较得出最慢的那个函数,接下来就要去代码里进行分析再优化。

上述是Arthas性能监控神器在性能测试中常用的几个监控参数(及命令),关于Arthas更多维度的监控,大家可以参照官网知识点学习。

如果觉得我的文章对您有用,请随意赞赏。您的支持将鼓励我继续创作!

发表回复