Arthas简介
Arthas
(阿尔萨斯)是阿里开源的一款Java应用程序诊断工具,采用Java
进行编写,它可以帮助我们在程序运行期间调试或者监控等其他的增强功能。
例如查找线上线程飙升,CPU飙升,内存负载高,反编译文件,等问题。
官方文档:传送门 Github地址:传送门
官方文档说明
这个类从哪个 jar 包加载的?为什么会报各种类相关的 Exception? sc命令 我改的代码为什么没有执行到?难道是我没 commit?分支搞错了? jad命令 遇到问题无法在线上 debug,难道只能通过加日志再重新发布吗? watch命令 线上遇到某个用户的数据处理有问题,但线上同样无法 debug,线下无法重现! watch命令 是否有一个全局视角来查看系统的运行状况?dashboard命令 有什么办法可以监控到JVM的实时运行状态? 怎么快速定位应用的热点,生成火焰图? profiler命令 怎样直接从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-boot.jar
,直接用java -jar
的方式启动:
java -jar arthas-boot.jar
打印帮助信息:
java -jar arthas-boot.jar -h
Arthas简单使用
一、准备调试的应用
- 准备一个可以执行的Java包,或者IDEA创建一个Java应用
- 应用需要是阻塞式的,可以一直运行的,否则运行时间过短的话,Arthas将无法附着到此应用
SpringBoot
的Web
项目即可,或者写一个死循环一直执行也可以
- 运行此应用
二、Attach Arthas
Arthas
安装完毕后,使用命令直接启动即可java -jar arthas-boot.jar
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
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的安装主目录
[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]$
出现 [arthas@PID] 即为附着成功,可以进行命令操作了
如果30分钟无输入的话Arthas
会自动退出哦
[arthas@70994]$ session (4351adf7-f0d8-41c4-a65e-b316aff3270c) is closed because session is inactive for 30 min(s).
附
在线调试Arthas地址:传送门
点击屏幕右下角的橙色按钮:Start Scenario 即可开始调试!
用户案例地址