JVM监控及诊断工具--- Arthas

一. 背景

 

Jvisualvm和Jprofiler功能强大,但是也有个缺点,就是都必须在服务端项目进程中配置相关的监控参数。然后工具通过远程连接到项目进程,获取相关的数据。这样就会带来一些不便,比如线上环境的网络是隔离的,本地的监控工具根本连不上线上环境。那么有没有一款工具不需要远程连接,也不需要配置监控参数,同时也提供了丰富的性能监控数据呢?这就推出了阿里巴巴开源的JVM监控及诊断工具--- Arthas。

官方网址

Arthas - Alibaba Java Diagnostic Tool

JVM监控及诊断工具--- Arthas_第1张图片

二. 安装

先新建一个文件夹存放jar,直接在该文件夹通过cmd下载arthas

curl -O https://arthas.aliyun.com/arthas-boot.jar

三. 启动

java -jar arthas-boot.jar (第一次启动需下载各类文件)显示当前系统执行的Java进程

输入1 (只要输入给定的编号即可)

JVM监控及诊断工具--- Arthas_第2张图片

windows系统下,若出现问题可参考

​​​​​​Windows系统下,Arthas启动出错:Exception in thread “main“ java.lang.IllegalArgumentException: Can not find to_枫陵的博客-CSDN博客

启动成功

JVM监控及诊断工具--- Arthas_第3张图片

四. 简单使用

cat(打印文件内容)

pwd(返回当前工作目录,指当前Java进程执行的工作目录)

cls(清屏)

JVM监控及诊断工具--- Arthas_第4张图片

session(查看当前会话信息)

 JVM监控及诊断工具--- Arthas_第5张图片

history(打印命令历史)

JVM监控及诊断工具--- Arthas_第6张图片

 quit(退出当前Arthas客户端,其他Arthas客户端不受影响)

 stop(关闭Arthas服务端,所有客户端全部退出)

五. JVM相关

dashboard(实时数据面板,可设置间隔时间) 

dashboard -i 1000 -n 4 (每隔1秒打印一次,总共打印4次)

JVM监控及诊断工具--- Arthas_第7张图片

 thread(线程,按CPU使用率排序)

JVM监控及诊断工具--- Arthas_第8张图片

 thread ID(展示ID对应线程情况) 

JVM监控及诊断工具--- Arthas_第9张图片

 thread -b(查看出现死锁线程)

 sysprop(查看JVM属性)

JVM监控及诊断工具--- Arthas_第10张图片

 sysenv(JVM环境变量)

JVM监控及诊断工具--- Arthas_第11张图片

heapdump 路径(生成堆dump文件)

 

六. class/classloader相关

sc(查看己加载类的信息)
sc 类名(查看类) 

 

sc -d 类名(查看类的具体信息)

JVM监控及诊断工具--- Arthas_第12张图片

sm(查看己加载类的方法信息,不包括父类方法)                                                                          sm 类名(查看类的方法) 

JVM监控及诊断工具--- Arthas_第13张图片

 sm -d 类名 方法(查看方法的具体信息)JVM监控及诊断工具--- Arthas_第14张图片

 jad(反编译)

jad 类名或方法名 

JVM监控及诊断工具--- Arthas_第15张图片

JVM监控及诊断工具--- Arthas_第16张图片 

classloader -t (以树形结构的方式展示类加载器的结构) 

JVM监控及诊断工具--- Arthas_第17张图片

classloader -l (展示类加载器的实例) 

 classloader -c hash(展示类加载器jar的地址)JVM监控及诊断工具--- Arthas_第18张图片

七. monitor/watch/trace相关

monitor(方法执行监控)

monitor 类名 (开启监控)

monitor -c 5 类名  (设置每隔5秒打印一次)JVM监控及诊断工具--- Arthas_第19张图片

 watch 类名  (查看基本信息)

JVM监控及诊断工具--- Arthas_第20张图片

 trace(方法内部调用路径,并输出方法路径上的每个节点上耗时)                                           trace 类名
JVM监控及诊断工具--- Arthas_第21张图片

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

JVM监控及诊断工具--- Arthas_第22张图片

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

tt -t 类名 

JVM监控及诊断工具--- Arthas_第23张图片

你可能感兴趣的:(JVM,java)