Arthas(阿尔萨斯) 能做什么?
Arthas
是Alibaba开源的Java诊断工具,深受开发者喜爱。
当你遇到以下类似问题而束手无策时,Arthas
可以帮助你解决:
-
这个类从哪个 jar 包加载的?为什么会报各种类相关的 Exception?
-
我改的代码为什么没有执行到?难道是我没 commit?分支搞错了?
-
遇到问题无法在线上 debug,难道只能通过加日志再重新发布吗?
-
线上遇到某个用户的数据处理有问题,但线上同样无法 debug,线下无法重现!
-
是否有一个全局视角来查看系统的运行状况?
-
有什么办法可以监控到JVM的实时运行状态?
-
怎么快速定位应用的热点,生成火焰图?
Arthas
支持JDK 6+,支持Linux/Mac/Windows,采用命令行交互模式,同时提供丰富的 Tab
自动补全功能,进一步方便进行问题的定位和诊断。
一 官方文档
https://arthas.aliyun.com/doc/
二 安装使用流程(windows环境)
1. 下载安装Arthas
使用arthas-boot
(推荐)
下载arthas-boot.jar
,
然后用java -jar
的方式启动:
例如如图 本地服务进程15912对应的是 3,所以我们输入 3
这样Arthas会attach到目标进程上,并输出日志
1. 查看dashboard(上帝视角)
输入dashboard,按回车/enter
,会展示当前进程的信息,按ctrl+c
可以中断执行。
2.更多命令可查看官网
https://arthas.aliyun.com/doc/commands.html
三 问题以及解决办法
1.启动报错
运行 :java -jar ~/arthas-boot.jar
报错:
-
[INFO] arthas-boot version: 3.3.9
-
[INFO] Can not find java process. Try to pass <pid> in command line.
-
Please select an available pid.
原因:---- 只装jre的环境或者安装的是严格版的jre 没办法运行 arthas-boot.jar ,需要安装完整的jdk。
2. 运行提示不存在java命令
java -jar ~/arthas-boot.jar
报错:
提示没有java命令
原因:---- 没有配置jdk环境,需要配置jdk环境 或者 到指定jdk安装目录的bin目录下执行
3. 选择进程对应的编号之后,报错
The telnet port 3658 is used by process 20017 instead of target process 18957, you will connect to an unexpected process.
原因: -- 之前已经使用Arthas运行了20017的进程,但是没有退出,先要进到原来的监控中运行stop命令。
4. 启动报错
运行 : ./java -jar /home/hik/arthas/arthas-boot.jar
报错:
解决办法 : 运行时加上进程号 java -jar ~/arthas-boot.jar 8086
参考地址:https://www.cnblogs.com/alisystemsoftware/p/13107988.html