当前位置 : 主页 > 编程语言 > java >

Arthas—帮你定位生产问题的工具

来源:互联网 收集:自由互联 发布时间:2023-09-14
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

启动完出现如下显示: image.png 在标记[1]处输出对应的PID后会继续后面的启动,启动结束在标记[2]处可以执行对应命令。

3.3 常用命令使用

定位方法耗时

-- trace [className] [methodName]
trace com.test.EventHandler dealEvent

可以看到各步骤的耗时: image.png

查看当前tomcat详情

dashboard

会显示当前 tomcat 的实时信息。 (1)线程信息: image.png (2)内存占用和GC情况: image.png (3)Runtime: image.png

4.更多使用参考官网

官网地址:https://arthas.aliyun.com/doc/commands.html

网友评论