Arthas

发布时间 2023-09-21 21:27:30作者: yifanSJ

一、简介

Arthas是 阿里巴巴开源的一款 Java 线上诊断工具,利用Arthas可以对指定的JVM进程进行CPU、内存、线程、死锁监控处理,同时也可以动态的获取JVM中的源代码结构。得益于 Arthas 强大且丰富的功能,让 Arthas 能做的事情超乎想象。当你遇到以下类似问题而束手无策时,Arthas都可以帮助你解决:

1. 全局JVM运行时监控,CPU、线程、内存、堆栈信息等;

2. CPU彪高,是什么造成的

3. 接口没有反应,卡住了,是不是死锁?

4. 遇到问题无法在线上 debug,难道只能通过加日志再重新发布吗?

5. 接口太慢,要优化一下,如何准确找出耗时的代码

6. 写的代码没有执行,是部署的分支不对,还是没有提交

7. 线止有一个低级错误,改起来很简单,能不能在不重启应用的情况下,进行类替换,热部署。

8. 是否有一个全局视角来查看系统的运行状况和JVM 的实时运行状态

二、Arthas常用命令

dashboard 当前系统的实时数据面板

thread 查看当前 JVM 的线程堆栈信息

watch 方法执行数据观测

trace 方法内部调用路径,并输出方法路径上的每个节点上耗时

stack 输出当前方法被调用的调用路径

tt 方法执行数据的时空隧道,记录下指定方法每次调用的入参和返回信息,并能对这些不同的时间下调用进行观测

monitor 方法执行监控

jvm 查看当前 JVM 信息

vmoption 查看,更新 JVM 诊断相关的参数

sc 查看 JVM 已加载的类信息

sm 查看已加载类的方法信息

jad 反编译指定已加载类的源码

classloader 查看 classloader 的继承树,urls,类加载信息

heapdump 类似 jmap 命令的 heap dump 功能