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

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

? ? ? ? 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ù)?

? ? ? ? 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í)行示例:

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

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

五、jhat
? ? ? ? jhat與jmap搭配使用,用來(lái)分析jmap生成的堆轉(zhuǎn)儲(chǔ)快照。
? ? ? ? jhat內(nèi)置了一個(gè)HTTP/Web服務(wù)器,生成的堆轉(zhuǎn)儲(chǔ)快照后,可以在瀏覽器查看。
? ? ? ? jhat使用示例如下,分析前面生成的dump文件:

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

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

? ? ? ? jstack使用示例:

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

? ??????