1. 简介 Arthas 是一款线上监控诊断产品,通过全局视角实时查看应用 load、内存、gc、线程的状态信息,并能在不修改应用代码的情况下,对业务问题进行诊断,包括查看方法调用的出入
1. 简介
Arthas
是一款线上监控诊断产品,通过全局视角实时查看应用 load、内存、gc、线程的状态信息,并能在不修改应用代码的情况下,对业务问题进行诊断,包括查看方法调用的出入参、异常,监测方法执行耗时,类加载信息等,大大提升线上问题排查效率。
Arthas
可以帮助开发人员在不重启JVM,不改代码的情况下定位生产问题。因为Arthas作为观察者,永远不会暂停正在运行的线程。
2.Arthas能解决那些难题?
Arthas
可以帮助你解决:
- 1.这个类从哪个
jar
包加载的?为什么会报各种类相关的Exception
? - 2.我改的代码为什么没有执行到?难道是我没
commit
?分支搞错了? - 3.遇到问题无法在线上
debug
,难道只能通过加日志再重新发布吗? - 4.线上遇到某个用户的数据处理有问题,但线上同样无法
debug
,线下无法重现! - 5.是否有一个全局视角来查看系统的运行状况?
- 6.有什么办法可以监控到
JVM
的实时运行状态? - 7.怎么快速定位应用的热点,生成火焰图?
- 8.怎样直接从
JVM
内查找某个类的实例?
Arthas
支持 JDK 6+
,支持 Linux/Mac/Windows
,采用命令行交互模式,同时提供丰富的 Tab 自动补全功能,进一步方便进行问题的定位和诊断。
3.如何使用Arthas?
3.1 下载
- 从阿里云maven仓库下载:点击下载
- 从GitHub下载:https://github.com/alibaba/arthas/releases
3.2 启动
需要在有jdk环境中才能启动。 (1)环境变量配置
JAVA_HOME=/opt/xxx/jdk1.8.0_332
PATH=$JAVA_HOME/bin:$PATH
CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export JAVA_HOME
export PATH
export CLASSPATH
(2)解压后通过arthas-boot
启动
java -jar arthas-boot.jar
启动完出现如下显示:
在标记[1]
处输出对应的PID后会继续后面的启动,启动结束在标记[2]
处可以执行对应命令。
3.3 常用命令使用
定位方法耗时
-- trace [className] [methodName]
trace com.test.EventHandler dealEvent
可以看到各步骤的耗时:
查看当前tomcat详情
dashboard
会显示当前 tomcat
的实时信息。
(1)线程信息:
(2)内存占用和GC情况:
(3)Runtime:
4.更多使用参考官网
官网地址:https://arthas.aliyun.com/doc/commands.html