0
点赞
收藏
分享

微信扫一扫

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

春意暖洋洋 2022-04-21 阅读 65
java

一. 背景

 

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

官方网址

Arthas - Alibaba Java Diagnostic Tool

二. 安装

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

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

三. 启动

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

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

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

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

启动成功

四. 简单使用

cat(打印文件内容)

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

cls(清屏)

session(查看当前会话信息)

 

history(打印命令历史)

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

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

五. JVM相关

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

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

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

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

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

 sysprop(查看JVM属性)

 sysenv(JVM环境变量)

heapdump 路径(生成堆dump文件)

 

六. class/classloader相关

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

 

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

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

 sm -d 类名 方法(查看方法的具体信息)

 jad(反编译)

jad 类名或方法名 

 

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

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

 classloader -c hash(展示类加载器jar的地址)

七. monitor/watch/trace相关

monitor(方法执行监控)

monitor 类名 <init> (开启监控)

monitor -c 5 类名 <init> (设置每隔5秒打印一次)

 watch 类名 <init> (查看基本信息)

 trace(方法内部调用路径,并输出方法路径上的每个节点上耗时)                                           trace 类名 <init>

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

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

tt -t 类名 <init>

举报

相关推荐

0 条评论