dashboard:當(dāng)前系統(tǒng)的實(shí)時(shí)數(shù)據(jù)面板
輸入?Q?或者?Ctrl+C?可以退出dashboard命令恭金。
-i 400ms 每次執(zhí)行間隔時(shí)間(ms)操禀,默認(rèn)5000ms
-n 執(zhí)行多少次dashboard,不指定的話會(huì)一直刷新
JVM內(nèi)部線程
Java 8之后支持獲取JVM內(nèi)部線程CPU時(shí)間横腿,這些線程只有名稱和CPU時(shí)間颓屑,沒(méi)有ID及狀態(tài)等信息(顯示ID為-1)斤寂。 通過(guò)內(nèi)部線程可以觀測(cè)到JVM活動(dòng),如GC揪惦、JIT編譯等占用CPU情況遍搞,方便了解JVM整體運(yùn)行狀況。
當(dāng)JVM 堆(heap)/元數(shù)據(jù)(metaspace)空間不足或OOM時(shí)丹擎,可以看到GC線程的CPU占用率明顯高于其他的線程尾抑。
當(dāng)執(zhí)行trace/watch/tt/redefine等命令后,可以看到JIT線程活動(dòng)變得更頻繁蒂培。因?yàn)镴VM熱更新class字節(jié)碼時(shí)清除了此class相關(guān)的JIT編譯結(jié)果再愈,需要重新編譯。
JVM內(nèi)部線程包括下面幾種:
JIT編譯線程: 如?C1 CompilerThread0,?C2 CompilerThread0
GC線程: 如GC Thread0,?G1 Young RemSet Sampling
其它內(nèi)部線程: 如VM Periodic Task Thread,?VM Thread,?Service Thread
thread:查看當(dāng)前 JVM 的線程堆棧信息
thread [ID]:會(huì)打印線程ID為[ID]的棧
-b :查看目前block其他線程的線程
-i 5000ms:查看在接下來(lái)的多長(zhǎng)時(shí)間內(nèi) 統(tǒng)計(jì)cpu利用率
-n 5:查看cpu占用率前5的線程的堆棧信息
--all :顯示所有匹配的線程
jvm:查看當(dāng)前 JVM 的信息
THREAD相關(guān)
COUNT: JVM當(dāng)前活躍的線程數(shù)
DAEMON-COUNT: JVM當(dāng)前活躍的守護(hù)線程數(shù)
PEAK-COUNT: 從JVM啟動(dòng)開(kāi)始曾經(jīng)活著的最大線程數(shù)
STARTED-COUNT: 從JVM啟動(dòng)開(kāi)始總共啟動(dòng)過(guò)的線程次數(shù)
DEADLOCK-COUNT: JVM當(dāng)前死鎖的線程數(shù)
文件描述符相關(guān)
MAX-FILE-DESCRIPTOR-COUNT:JVM進(jìn)程最大可以打開(kāi)的文件描述符數(shù)
OPEN-FILE-DESCRIPTOR-COUNT:JVM當(dāng)前打開(kāi)的文件描述符數(shù)
sysprop:查看和修改JVM的系統(tǒng)屬性
sysprop java.version 查看指定key的value
sysprop | grep user 包含過(guò)濾
sysprop newkey newvalue 設(shè)置新的key value
sysenv:查看JVM的環(huán)境變量
vmoption:查看和修改JVM里診斷相關(guān)的option
例子
vmoption
vmoption PrintGCDetails
vmoption PrintGCDetails true
perfcounter:查看當(dāng)前 JVM 的Perf Counter信息
-d:打印詳細(xì)信息
logger:查看和修改logger
-c, --classloader <value>:指定classloader护戳,默認(rèn)為SystemClassLoader
? ? --classLoaderClass <value>:指定classloader的類
? ? --include-no-appender:打印不包含的appender
-l, --level <value>:設(shè)置日志等級(jí)
-n, --name <value>:查看名字為<value>的
getstatic:查看類的靜態(tài)屬性
推薦直接使用ognl命令翎冲,更加靈活