Arthas官网
Arthas 是Alibaba开源的Java诊断工具
Arthas可以帮助你解决:
下载arthas-boot.jar,然后用java -jar的方式启动:
curl -O https://alibaba.github.io/arthas/arthas-boot.jar
java -jar arthas-boot.jar
dashboard
当前系统的实时数据面板,ctrl + c
中断thread
查看jvm线程堆栈信息thread
显示所有线程的概览thread id
显示指定线程ID的堆栈信息thread -n 3
查看当前最忙的前三个线程thread -b
找出现在阻塞其他线程的线程thread -i 5000
指定采样间隔,这个是采集5秒内的数据.会在5秒后返回统计信息thread -state WAITING
指定显示某种状态的线程jvm
查看jvm整体概览,可以查看死锁
sysprop
查看系统的属性sysenv
查看jvm的环境变量,包括jvm运行的main方法类getstatic
查看类的静态属性ognl
调用静态方法ognl ‘@java.lang.System@out.println("hello")‘
会在程序的控制台输出hellosc
查看jvm已加载的类的信息search class,支持*
号匹配-d
列出类的详细信息,包括类名,类所在的位置,类的ClassLoader-f
需要与-d同时使用,显示类的成员变量sm
查看类的方法信息search method-d
展示详细方法描述(方法所在类,方法名,修饰符,入参,返回值)jad [className]
反编译Classmc
内存编绎器memory compile,把.java文件编译为.class文件mc /temp/Test.java
mc -c 327a647b /tmp/Test.java
mc -d /tmp/output tmp/ClassA.java tmp.ClassB.java
redefine
命令实现热更新代码redefine
加载外部的.class文件,redefine jvm已加载的类redefine /tmp/Test.class
redefine -c 327a647b /tmp/Test.class /tmp/Test\$Inner.class
dump
dump已加载类的byte code到特定目录dump java.lang.String
将String的class文件dump到指定位置,会显示具体位置在哪里classloader
查看所有加载的类信息,classloader信息classloader
展示出所有已加载的类classloader -l
展示每个classloader加载了多少类classloader -t
展示类加载器的继承树monitor
方法执行监控watch
方法执行数据观测trace
方法内部调用路径,并输出方法路径上的每个节点上耗时stack
输出当前方法被调用的调用路径tt
方法执行数据的时空隧道,记录下指定方法每次调用的入参和返回信息,并能对这些不同时间下的调用进行观测原文:https://www.cnblogs.com/Serenity1994/p/12495303.html