Arthas官网
Arthas 是Alibaba开源的Java诊断工具
Arthas可以帮助你解决:
下载arthas-boot.jar,然后用java -jar的方式启动:
curl -O https://alibaba.github.io/arthas/arthas-boot.jar
java -jar arthas-boot.jardashboard当前系统的实时数据面板,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.javamc -c 327a647b /tmp/Test.javamc -d /tmp/output tmp/ClassA.java tmp.ClassB.javaredefine命令实现热更新代码redefine加载外部的.class文件,redefine jvm已加载的类redefine /tmp/Test.classredefine -c 327a647b /tmp/Test.class /tmp/Test\$Inner.classdump 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