0 学习目录
1. Arthas(阿尔萨斯)概述
Arthas 是Alibaba开源的Java诊断工具,深受开发者喜爱。
当你遇到以下类似问题而束手无策时,arthas可以帮助你解决:
- 这个类是从哪个jar包加载的?为什么会报各种类相关的Exception?
- 我改的代码为什么没有执行到?难道是我没Commit?分支搞错了?
- 遇到问题无法在线上debug,难道只能通过加日志再重新发布?
- 线上遇到某个用户的数据处理有问题,单线上同样无法debug,线下无法再现。
- 是否有一个全局视角来查看系统的运行状况?
- 有什么办法可以监控到JVM的实时运行状态?
- 怎么快速定位应用的热点,生成火焰图?
2. 安装Arthas
2.1 运行环境要求
Arthas
支持 JDK6+, 支持Linux/Mac/Windows,采用命令行交互模式,同事提供丰富的Tab自动补全功能,进一步方便进行问题的定位和诊断。
2.2 快速安装
2.2.1 使用arthas-boot.jar
-
下载
arthas-boot.jar
,然后用java -jar
的方式启动:curl -O https://arthas.aliyun.com/arthas-boot.jar java -jar arthas-boot.jar # 启动arthas-boot.jar时需要后台有正在运行的java进程,否则会无法启动,错误信息如下 [ligen@center_server ~]$ java -jar arthas-boot.jar [INFO] arthas-boot version: 3.4.6 [INFO] Can not find java process. Try to pass <pid> in command line. Please select an available pid.
-
启动并选中java进程,成功安装并启动arthas
[ligen@center_server ~]$ java -jar arthas-boot.jar [INFO] arthas-boot version: 3.4.6 [INFO] Found existing java process, please choose one and input the serial number of the process, eg : 1. Then hit ENTER. * [1]: 32416 docker-demo.jar 1 [INFO] Start download arthas from remote server: https://arthas.aliyun.com/download/3.4.6?mirror=aliyun [INFO] File size: 11.99 MB, downloaded size: 3.38 MB, downloading ... [INFO] File size: 11.99 MB, downloaded size: 6.47 MB, downloading ... [INFO] File size: 11.99 MB, downloaded size: 10.08 MB, downloading ... [INFO] Download arthas success. [INFO] arthas home: /home/ligen/.arthas/lib/3.4.6/arthas [INFO] Try to attach process 32416 [INFO] Attach process 32416 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.4.6 pid 32416 time 2021-01-30 15:14:01
-
启动时打印帮助信息
java -jar arthas-boot.jar -h
-
下载较慢使用阿里云镜像:
java -jar arthas-boot.jar --repo-mirror aliyun --use-http
2.2.2 使用as.sh
Arthas 支持在 Linux/Unix/Mac 等平台上一键安装,请复制以下内容,并粘贴到命令行中,敲 回车
执行即可:
curl -L https://arthas.aliyun.com/install.sh | sh
上述命令会下载启动脚本文件 as.sh
到当前目录,你可以放在任何地方或将其加入到 $PATH
中。
直接在shell下面执行./as.sh
,就会进入交互界面。
也可以执行./as.sh -h
来获取更多参数信息。
2.3 全量安装
最新版本,点击下载:[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Xy2e9kso-1616728542970)(img/arthas-packaging.svg)]
解压后,在文件夹里有arthas-boot.jar
,直接用java -jar
的方式启动:
java -jar arthas-boot.jar
打印帮助信息:
java -jar arthas-boot.jar -h
3. 快速入门
-
启动
arthas-demo.jar
文件arthas-demo
是一个简单的程序,每隔一秒生成一个随机数,再执行质因数分解,并打印出分解结果。arthas-demo
源代码:查看[ligen@center_server ~]$ cd ./.arthas/lib/3.4.6/arthas/ [ligen@center_server arthas]$ ls -alrt 总用量 13216 drwxr-xr-x. 3 ligen wheel 20 1月 30 15:13 .. -rw-r--r--. 1 ligen wheel 8889 1月 30 15:13 arthas-spy.jar -rw-r--r--. 1 ligen wheel 12866578 1月 30 15:14 arthas-core.jar -rw-r--r--. 1 ligen wheel 2020 1月 30 15:14 logback.xml -rw-r--r--. 1 ligen wheel 311 1月 30 15:14 arthas.properties -rw-r--r--. 1 ligen wheel 8438 1月 30 15:14 arthas-agent.jar -rw-r--r--. 1 ligen wheel 428578 1月 30 15:14 arthas-client.jar -rw-r--r--. 1 ligen wheel 635 1月 30 15:14 install-local.sh -rw-r--r--. 1 ligen wheel 32131 1月 30 15:14 as.sh -rw-r--r--. 1 ligen wheel 3091 1月 30 15:14 as.bat -rw-r--r--. 1 ligen wheel 4484 1月 30 15:14 arthas-demo.jar -rw-r--r--. 1 ligen wheel 138993 1月 30 15:14 arthas-boot.jar -rw-r--r--. 1 ligen whee