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 类名
monitor -c 5 类名
watch 类名
trace(方法内部调用路径,并输出方法路径上的每个节点上耗时) trace 类名
stack (输出当前方法被调用的调用路径)
tt (方法执行数据的时空隧道,记录下指定方法每次调用的入参和返回信息,并能对这些不同的时间下调用进行观测)
tt -t 类名
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)