当咱们发现线上问题,或者想知道一些线上运行状况,jvm情况,类加载状况。 这个时候就能够使用arthas。java
#可以干啥git
dashboard——当前系统的实时数据面板github
thread——查看当前 JVM 的线程堆栈信息jvm
jvm——查看当前 JVM 的信息async
sysprop——查看和修改JVM的系统属性工具
sysenv——查看JVM的环境变量url
vmoption——查看和修改JVM里诊断相关的option线程
logger——查看和修改loggercode
getstatic——查看类的静态属性继承
ognl——执行ognl表达式
mbean——查看 Mbean 的信息
heapdump——dump java heap, 相似jmap命令的heap dump功能
sc——查看JVM已加载的类信息
sm——查看已加载类的方法信息
jad——反编译指定已加载类的源码
mc——内存编绎器,内存编绎.java文件为.class文件
redefine——加载外部的.class文件,redefine到JVM里
dump——dump 已加载类的 byte code 到特定目录
classloader——查看classloader的继承树,urls,类加载信息,使用classloader去getResource
请注意,这些命令,都经过字节码加强技术来实现的,会在指定类的方法中插入一些切面来实现数据统计和观测,所以在线上、预发使用时,请尽可能明确须要观测的类、方法以及条件,诊断结束要执行 shutdown 或将加强过的类执行 reset 命令。
monitor——方法执行监控
watch——方法执行数据观测
trace——方法内部调用路径,并输出方法路径上的每一个节点上耗时
stack——输出当前方法被调用的调用路径
tt——方法执行数据的时空隧道,记录下指定方法每次调用的入参和返回信息,并能对这些不一样的时间下调用进行观测
profiler–使用async-profiler对应用采样,生成火焰图
options——查看或设置Arthas全局开关
...
https://github.com/alibaba/arthas/blob/master/README_CN.md https://alibaba.github.io/arthas/ https://alibaba.github.io/arthas/arthas-tutorials?language=cn