一、软件介绍
Arthas 地址:https://github.com/alibaba/arthas
官方文档:https://alibaba.github.io/arthas
Arthas 是Alibaba开源的Java诊断工具,深受开发者喜爱。
当你遇到以下类似问题而束手无策时,Arthas可以帮助你解决:
这个类从哪个 jar 包加载的?为什么会报各种类相关的 Exception? 我改的代码为什么没有执行到?难道是我没commit?分支搞错了? 遇到问题无法在线上 debug,难道只能通过加日志再重新发布吗?
线上遇到某个用户的数据处理有问题,但线上同样无法 debug,线下无法重现! 是否有一个全局视角来查看系统的运行状况?
有什么办法可以监控到JVM的实时运行状态? 怎么快速定位应用的热点,生成火焰图? 怎样直接从JVM内查找某个类的实例?
Arthas支持JDK 6+,支持Linux/Mac/Windows,采用命令行交互模式,同时提供丰富的 Tab自动补全功能,进一步方便进行问题的定位和诊断。
二、下载教程
下载arthas-boot.jar
curl -O https://arthas.aliyun.com/arthas-boot.jar
三、安装教程
用java -jar的方式启动
java -jar arthas-boot.jar
前提是你需要启动java项目,否者将会出现找不到java进程pid的情况
Can not find java process. Try to run `jps` command lists the instrumented Java HotSpot VMs on the target system. Please select an available pid.
下面是正常情况启动,输入你想监控的进程序号,例如1,点击enter,启动成功,这是一个ruoyi的项目进程
四、使用教程
Arthas 目前支持 Web Console,用户在 attach 成功之后,可以直接访问:http://127.0.0.1:8563/。还可以填入 IP,远程连接其它机器上的 arthas。
dashboard
- 当前系统的实时数据面板
getstatic
- 查看类的静态属性
heapdump
- dump java heap, 类似 jmap 命令的 heap dump 功能
jvm
- 查看当前 JVM 的信息
logger
- 查看和修改 logger
mbean
- 查看 Mbean 的信息
memory
- 查看 JVM 的内存信息
ognl
- 执行 ognl 表达式
perfcounter
- 查看当前 JVM 的 Perf Counter 信息
sysenv
- 查看 JVM 的环境变量
sysprop
- 查看和修改 JVM 的系统属性
thread
- 查看当前 JVM 的线程堆栈信息
vmoption
- 查看和修改 JVM 里诊断相关的 option
vmtool
- 从 jvm 里查询对象,执行 forceGc
dashboard
- 当前系统的实时数据面板
thread
查看进程
通过jad
来反编译Class