深入理解Java虛擬機(jī)(七)—— 基于命令行的性能監(jiān)控與故障分析工具

一、jps

? ? ? ? JDK的bin目錄下jps.exe工具。

圖 1-1 jps.exe

????????作用是查詢進(jìn)程狀況,和linux的ps指令類似,可以列舉出進(jìn)程、 執(zhí)行主類的名稱、進(jìn)程編號(hào)。

jps 命令格式:

jps [ options ] [ hostid ]

圖 1-2 jps主要選項(xiàng)

? ? ? ? jps執(zhí)行樣例:

圖 1-3 jps執(zhí)行樣例

二、jstat

? ? ? ? jstat是用于監(jiān)視虛擬機(jī)各種運(yùn)行狀態(tài)信息的命令行工具。? ?

? ? ? ? jstat可以顯示進(jìn)程中的類加載、內(nèi)存、垃圾收集、即時(shí)編譯等運(yùn)行時(shí)數(shù)據(jù)。

jstat 命令格式:

jstat [ option vmid [ interval [ s | ms ] [ count ] ]

如果是遠(yuǎn)程虛擬機(jī)進(jìn)程,則VMID的格式為:

[ protocol: ][ // ] lvmid [ @hostname [ :port ] /servername ]

參數(shù)說(shuō)明:

interval - 代表查詢的間隔

count - 代表查詢的次數(shù)?

圖 2-1 jstat工具主要選項(xiàng)

? ? ? ? jstat執(zhí)行示例:

圖 2-1 jstat執(zhí)行示例

執(zhí)行結(jié)果參數(shù)說(shuō)明:

S0C - 第一個(gè)幸存區(qū)大小????

S1C - 第二個(gè)幸存區(qū)大小

S0U - 第一個(gè)幸存區(qū)使用大小

S1U - 第二個(gè)幸存區(qū)使用大小

EC? - Eden區(qū)大小

EU - Eden區(qū)使用大小

OC - 老年代大小

OU - 老年大使用大小

MC - 方法區(qū)大小

MU - 方法區(qū)使用大小

CCSC - 壓縮類空間大小

CCSU - 壓縮類空間使用大小

YGC - 年輕代回收次數(shù)

YGCT - 年輕代回收耗時(shí)

FGC - 老年代回收次數(shù)

FGCT - 老年代回收耗時(shí)

GCT - 垃圾回收總耗時(shí)

三、jinfo

? ? ? ? jinfo是實(shí)時(shí)查看和調(diào)整虛擬機(jī)的工具。

? ? ? ? 與jps不同的是,使用jps -v 雖然可以查看虛擬機(jī)啟動(dòng)時(shí)顯示指定的參數(shù)列表,但無(wú)法顯示指定參數(shù)的系統(tǒng)默認(rèn)值。

jinfo命令格式:

jinfo [ option ] pid

? ? ? ? jinfo 執(zhí)行示例:

圖 3-1 jinfo執(zhí)行示例

四、jmap

? ? ? ? jmap用于生成堆轉(zhuǎn)儲(chǔ)快照,即常說(shuō)的dump文件,jmap還可以查詢finalize執(zhí)行隊(duì)列、java堆和方法區(qū)的詳細(xì)信息。

jmap命令格式:

jmap [ option ] vmid

圖 4-1 jmap工具主要選項(xiàng)

? ? ? ? jmap執(zhí)行示例:

圖 4-2 jmap執(zhí)行示例

五、jhat

? ? ? ? jhat與jmap搭配使用,用來(lái)分析jmap生成的堆轉(zhuǎn)儲(chǔ)快照。

? ? ? ? jhat內(nèi)置了一個(gè)HTTP/Web服務(wù)器,生成的堆轉(zhuǎn)儲(chǔ)快照后,可以在瀏覽器查看。

? ? ? ? jhat使用示例如下,分析前面生成的dump文件:

圖 5-1 jhat使用示例

? ? ? ? 通過(guò)訪問(wèn) http://localhost:7000/? 查看分析結(jié)果,如圖:

圖 5-2 jhat分析結(jié)果

六、jstack

? ? ? ? jstack用于生成虛擬機(jī)當(dāng)前時(shí)刻的線程快照,線程快照就是當(dāng)前虛擬機(jī)內(nèi)每一條線程正在執(zhí)行的方法堆棧的集合。常用于定位線程長(zhǎng)時(shí)間停頓的問(wèn)題(死鎖、死循環(huán)等)。

jstack命令格式:

jstack [ option ] vmid?

圖 6-1 jstack主要選項(xiàng)

? ? ? ? jstack使用示例:

圖 6-2 jstack 使用示例

七、其他JDK自帶的性能監(jiān)控和故障處理工具

圖 7-1 其他JDK自帶的性能監(jiān)控和故障處理工具


? ??????

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容