JDK自帶小工具彙總
1、 jps -l (全稱JVM Process Status Tool)輸出主類的全名,如果是jar包,輸出jar包的全路徑,如下:
2、jstat(JVM Statics Monitoring Tool)
jstat -gc pid time times【可以先用ps -ef|grep java找出對應的執行緒ID】檢視的是總量
jstat -gc 22866 300 5 表示每隔300ms檢視執行緒22866的垃圾回收情況,一共列印5次,如下圖
S0C S1C S0U S1U EC EU OC OU PC PU YGC YGCT FGC FGCT GCT
1152.0 1152.0 800.0 0.0 696704.0 580419.4 1398144.0 416929.5 150656.0 150633.7 126 5.189 0 0.000 5.189
S0C表示Survivor0空間的大小,單位KB
S1C表示Survivor1空間的大小,單位KB
S0U表示Survivor0已用空間的大小,單位KB
S1U表示Survivor1已用空間的大小,單位KB
EC表示Eden空間的大小,單位KB
EU表示Eden已用空間的大小,單位KB
OC表示老年代空間的大小,單位KB
OU表示老年代已用空間的大小,單位KB
PC表示永久代空間的大小,單位KB
PU表示永久代已用空間的大小,單位KB
YGC表示新生代空間GC發生的次數
YGCT表示新生代空間GC處理花費的時間
FGC表示fullGC發生的次數
FGCT表示fullGC處理花費的時間
GCT表示GC操作花費的總時間
3、jstat -gcutil 22866 2000 3 表示每隔2000ms檢視執行緒22866已用空間佔總空間的百分比,一共列印3次,如下圖
S0 S1 E O P YGC YGCT FGC FGCT GCT
0.00 100.00 82.98 29.83 99.99 127 5.204 0 0.000 5.204
查詢結果表明:此臺伺服器的新生代Eden區使用了82.98%的空間,SO是空的,S1已使用100%,老年代和永久代分別使用了29.83%和99.99%,程式執行以來共發生YGC127次,總耗時5.204秒;沒有發生過full GC。所有GC總耗時為5.204秒。
4、jstack (Stack Trace for Java)
jstack -F 22866 表示正常輸出的請求不被響應時,強制輸出堆疊的資訊
jstack -l 22866 表示除堆疊外,顯示鎖的附加資訊
jstack -m 22866 表示如果呼叫到本地方法話,可以顯示C/C++的堆疊