【🪲问题排查,接口调优🚀神器】Arthas简介和一键急速启动

112 阅读4分钟

Arthas简介

Arthas(阿尔萨斯)是阿里开源的一款Java应用程序诊断工具,采用Java进行编写,它可以帮助我们在程序运行期间调试或者监控等其他的增强功能。

例如查找线上线程飙升,CPU飙升,内存负载高,反编译文件,等问题。

官方文档:传送门 Github地址:传送门

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

运行要求:JDK6+

运行环境:支持Windows和Linux和Mac,采用命令交互的方式进行操作,同时提供强大的Tab键提示功能!

​ 注:Tab键可以提示:命令补全、命令参数补全、类路径补全、类方法补全...


Arthas安装

Artahs安装方式及其的简单,官方推荐使用arthas-boot.jar方式启动。

注:运行Arthas的机器必须正确的安装JDK,否则无法运行!


一键运行Arthas

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

一、在线安装

以下命令通用 Windows、Mac、Linux

1. 下载 arthas-boot.jar

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

2. 下载完成后直接运行

java -jar arthas-boot.jar	

二、离线安装

最新版本,点击下载:Arthas

解压后,在文件夹里有arthas-boot.jar,直接用java -jar的方式启动:

java -jar arthas-boot.jar

打印帮助信息:

java -jar arthas-boot.jar -h

Arthas简单使用

一、准备调试的应用

  • 准备一个可以执行的Java包,或者IDEA创建一个Java应用
    • 应用需要是阻塞式的,可以一直运行的,否则运行时间过短的话,Arthas将无法附着到此应用
    • SpringBootWeb项目即可,或者写一个死循环一直执行也可以
  • 运行此应用

二、Attach Arthas

  1. Arthas安装完毕后,使用命令直接启动即可
java -jar arthas-boot.jar
  1. 启动成功后控制台将显示本地所有的Java进程
yufire@YufiredeMacBook-Pro Desktop % java -jar arthas-boot.jar
[INFO] arthas-boot version: 3.6.1
[INFO] Found existing java process, please choose one and input the serial number of the process, eg : 1. Then hit ENTER.
* [1]: 70993 org.jetbrains.jps.cmdline.Launcher
  [2]: 2754 
  [3]: 70994 cn.yufire.arthas.arthasdemo.ArthasDemoApplication
  [4]: 63992 org.jetbrains.idea.maven.server.RemoteMavenServer36
  [5]: 11101 
  1. 选中你想附着的Java进程即可,在命令行中输入进行所对应的数字即可

arthas-boot.jar只是启动的包,如果Arthas未安装的话,在第一次启动的时候会自动进行全量安装

控制台会输出以下内容

[INFO] Start download arthas from remote server: https://arthas.aliyun.com/download/3.6.1?mirror=aliyun
[INFO] File size: 12.89 MB, downloaded size: 1.29 MB, downloading ...
[INFO] File size: 12.89 MB, downloaded size: 1.80 MB, downloading ...
[INFO] File size: 12.89 MB, downloaded size: 2.22 MB, downloading ...
[INFO] File size: 12.89 MB, downloaded size: 3.06 MB, downloading ...
[INFO] File size: 12.89 MB, downloaded size: 4.08 MB, downloading ...
[INFO] File size: 12.89 MB, downloaded size: 5.45 MB, downloading ...
[INFO] File size: 12.89 MB, downloaded size: 7.09 MB, downloading ...
[INFO] File size: 12.89 MB, downloaded size: 9.25 MB, downloading ...
[INFO] File size: 12.89 MB, downloaded size: 11.85 MB, downloading ...
[INFO] Download arthas success.
[INFO] arthas home: /Users/yufire/.arthas/lib/3.6.1/arthas

最后一行arthas home 即代表Arthas的安装主目录


  1. 在命令行窗口输入对应的数字后,需要等待一会,Arthas即可成功附着到此进程中去
[INFO] arthas home: /Users/yufire/.arthas/lib/3.6.1/arthas
[INFO] Try to attach process 70994
[INFO] Attach process 70994 success.
[INFO] arthas-client connect 127.0.0.1 3658
  ,---.  ,------. ,--------.,--.  ,--.  ,---.   ,---.                           
 /  O  \ |  .--. ''--.  .--'|  '--'  | /  O  \ '   .-'                          
|  .-.  ||  '--'.'   |  |   |  .--.  ||  .-.  |`.  `-.                          
|  | |  ||  |\  \    |  |   |  |  |  ||  | |  |.-'    |                         
`--' `--'`--' '--'   `--'   `--'  `--'`--' `--'`-----'                          

wiki       https://arthas.aliyun.com/doc                                        
tutorials  https://arthas.aliyun.com/doc/arthas-tutorials.html                  
version    3.6.1                                                                
main_class cn.yufire.arthas.arthasdemo.ArthasDemoApplication                    
pid        70994                                                                
time       2022-05-27 12:12:43                                                  

[arthas@70994]$ 
  1. 出现 [arthas@PID] 即为附着成功,可以进行命令操作了

  2. 如果30分钟无输入的话Arthas会自动退出哦

    1. [arthas@70994]$ session (4351adf7-f0d8-41c4-a65e-b316aff3270c) is closed because session is inactive for 30 min(s).
      

在线调试Arthas地址:传送门 点击屏幕右下角的橙色按钮:Start Scenario 即可开始调试!


用户案例地址