Arthas JVM相关命令

dashboard:当前系统的实时数据面板

dashboard

输入 Q 或者 Ctrl+C 可以退出dashboard命令。

-i 400ms 每次执行间隔时间(ms),默认5000ms

-n 执行多少次dashboard,不指定的话会一直刷新

JVM内部线程

Java 8之后支持获取JVM内部线程CPU时间,这些线程只有名称和CPU时间,没有ID及状态等信息(显示ID为-1)。 通过内部线程可以观测到JVM活动,如GC、JIT编译等占用CPU情况,方便了解JVM整体运行状况。

当JVM 堆(heap)/元数据(metaspace)空间不足或OOM时,可以看到GC线程的CPU占用率明显高于其他的线程。

当执行trace/watch/tt/redefine等命令后,可以看到JIT线程活动变得更频繁。因为JVM热更新class字节码时清除了此class相关的JIT编译结果,需要重新编译。

JVM内部线程包括下面几种:

JIT编译线程: 如 C1 CompilerThread0, C2 CompilerThread0

GC线程: 如GC Thread0, G1 Young RemSet Sampling

其它内部线程: 如VM Periodic Task Thread, VM Thread, Service Thread

thread:查看当前 JVM 的线程堆栈信息

thread

thread [ID]:会打印线程ID为[ID]的栈

-b :查看目前block其他线程的线程

-i 5000ms:查看在接下来的多长时间内 统计cpu利用率

-n 5:查看cpu占用率前5的线程的堆栈信息

--all :显示所有匹配的线程

jvm:查看当前 JVM 的信息

jvm

THREAD相关

COUNT: JVM当前活跃的线程数

DAEMON-COUNT: JVM当前活跃的守护线程数

PEAK-COUNT: 从JVM启动开始曾经活着的最大线程数

STARTED-COUNT: 从JVM启动开始总共启动过的线程次数

DEADLOCK-COUNT: JVM当前死锁的线程数

文件描述符相关

MAX-FILE-DESCRIPTOR-COUNT:JVM进程最大可以打开的文件描述符数

OPEN-FILE-DESCRIPTOR-COUNT:JVM当前打开的文件描述符数

sysprop:查看和修改JVM的系统属性

sysprop

sysprop java.version 查看指定key的value

sysprop | grep user 包含过滤

sysprop newkey newvalue 设置新的key value

sysenv:查看JVM的环境变量

sysenv

vmoption:查看和修改JVM里诊断相关的option

vmoption

例子

vmoption

vmoption PrintGCDetails

vmoption PrintGCDetails true

perfcounter:查看当前 JVM 的Perf Counter信息

perfcounter

-d:打印详细信息

logger:查看和修改logger

logger

-c, --classloader :指定classloader,默认为SystemClassLoader

    --classLoaderClass :指定classloader的类

    --include-no-appender:打印不包含的appender

-l, --level :设置日志等级

-n, --name :查看名字为

getstatic:查看类的静态属性

getstatic

推荐直接使用ognl命令,更加灵活

ognl:执行ognl表达式

ognl

详见http://note.youdao.com/s/TwJGuJUD

mbean:查看 Mbean 的信息

mbean

heapdump:dump java heap, 类似jmap命令的heap dump功能

你可能感兴趣的:(Arthas JVM相关命令)