Java命令 jstat 詳解

jstat(Java Virtual Machine statistics monitoring tool)——查看堆內各個部分的使用量,以及加載類的數量

命令格式:jstat [generalOption | outputOptions vmid [ interval [ s|ms ] [ count ] ] ]

注意:該命令老一點的系統中是不可用,如Windows 98和Windows ME。

注意:下面部分操作截圖中,使用的jdk8版本

 

generalOption:簡單通用命令行選項 (-help,-options, or -version)

-help:展示命令相關信息

-version:展示版本信息

-options:顯示統計選項的列表。 請參閱下面的輸出選項部分

outputOptions:

-statOption:

class:關於類加載器行爲的統計信息

compiler:HotSpot即時編譯器行爲的統計信息

gc:垃圾回收堆行爲的統計信息

gacapacity:統計內存三代(young、old、permanent)及他們空間信息

gccause:垃圾收集統計(與-gcutil相同)的摘要,以及最後一個和當前(如果適用)垃圾回收事件的cause

gcnew:新生代的統計信息

gcnewcapacity:新生代及其空間使用情況

gcold:老年代和永久代的統計信息

gcoldcapacity:老年代容量的使用情況

gcpermcapacity:永久代容量的使用情況

gcutil:垃圾回收統計

printcompilation:hotSpot編譯器方法統計

-h n:設置隔n行顯示header

-t:第一列顯示一個時間戳,當前時間與jvm啓動時間的時間間隔

-J (option):將選項傳遞給java程序(例如:-J -Xms48m 將啓動內存設置爲48兆字節。 -J通過是一個通用的約定執行用Java編寫的應用程序的底層VM選項)

下面對於statOption做詳細的說明,在使用的過程中,打印的信息表示什麼意思

class:類加載統計

jstat -class 4718

Loaded  Bytes  Unloaded  Bytes     Time     

3297      6221.3     0           0.0         1.46

Loaded:加載class的數量

Bytes:所佔用空間大小

Unloaded:未加載數量

Bytes:未加載佔用空間

Time:花費在執行類加載和未加載操作上的時間

compiler:HotSpot即時編譯器行爲的統計信息

Compiled:編譯數量

Failed:失敗數量

Invalid:不可用數量

Time:編譯花費的時間

FailedType:最近一次編譯失敗的編譯類型(網上找了一大圈,發現和我這票相關的文章,幾乎內容一模一樣,可就是沒有這個FailedType字段值的解釋,難道真是“天下文章一大抄” ?。無奈,找官方文檔,也沒找出是啥意思。好吧,我也不糾結了,官方文檔地址是:https://docs.oracle.com/javase/6/docs/technotes/tools/share/jstat.html#compiler_option  如果有知道的朋友,請在評論區告訴我,謝謝!

FailedMethod:最近一次編譯失敗的類名和方法名

gc:垃圾回收堆行爲的統計信息

jstat -gc 4718

圖1

S0C:survivor 0的容量(KB)

S1C:survivor 1的容量(KB)

S0U:survivor 0已使用情況(KB)

S1U:survivor 1已使用情況(KB)

EC:Eden的空間容量(KB)

EU:Eden已使用情況(KB)

OC:老年代空間容量(KB)

OU:老年代已使用大小(KB)

MC:方法區空間容量(KB)

MU:方法區使用大小(KB)

CCSC:壓縮類空間大小

CCSU:壓縮類空間使用大小

YGC:新生代垃圾回收次數

YGCT:新生代垃圾回收消耗時間

FGC:full gc發生次數

FGCT:full gc消耗時間

GCT:垃圾回收消耗總時間

gacapacity:統計內存三代(young、old、permanent)及他們空間使用信息

jstat -gccapacity 4718

圖2

NGCMN:新生代最小容量

NGCMX:新生代最大容量

NGC:當前新生代容量

S0C:survivor 0的容量

S1C:survivor 1的容量

EC:Eden的空間容量

OGCMN:老年代最小容量

OGCMX:老年代最大容量

OGC:當前老年代容量

OC: 當前老年代空間大小

MCMN: 永久代最小容量

MCMX:永久代最大容量

MC:當前元數據空間大小

CCSMN:最小壓縮類空間大小

CCSMX:最大壓縮類空間大小

CCSC:當前壓縮類空間大小

YGC:年輕代gc次數

FGC:老年代GC次數

gcutil:垃圾回收統計

jstat -gcutil 4718 500 10

圖3

S0:survivor 0當前使用比例

S1:survivor 1當前使用比例

E:永久代使用比例

O:老年代使用比例

M:元數據區使用比例

CCS:壓縮使用比例

YGC:新生代垃圾回收次數

FGC:老年代垃圾回收次數

FGCT:老年代垃圾回收消耗時間

GCT:垃圾回收消耗總時間

gccause:垃圾收集統計(與-gcutil相同)的摘要,以及上次和當前(如果適用)垃圾回收事件的cause

jstat -gccause 4718 500 10

圖4

LGCC:上次垃圾回收的cause

GCC:當前垃圾回收的cause

gcnew:新生代統計

jstat -gcnew 4718 500 10

圖5

S0C:survivor 0的容量大小

S1C:survivor 1的容量大小

S0U:survivor 0的使用大小

S1U:survivor 1的使用大小

TT: 對象在新生代存活的次數

MTT: 對象在新生代存活的最大次數

DSS:期望的survivor大小

EC:Eden的容量大小

EU:Eden的使用大小

YGC:新生代垃圾回收次數

YGCT:新生代垃圾回收消耗時間

gcnewcapacity:新生代空間大小統計

jstat -gcnewcapacity 4718 500 10

圖6

NGCMN:新生代最小容量

NGCMX:新生代最大容量

NGC:當前新生代容量

S0CMX:最大survivor 0大小

S0C:當前survivor 0大小

S1CMX:最大survivor 1大小

S1C:當前survivor 1大小

ECMX:最大Eden區空間大小

EC:當前Eden區空間大小

YGC:新生代垃圾回收次數

FGC:老年代回收次數

gcold:老年代和永久代的統計信息

jstat -gcold 4718 500 10

圖7

MC:方法區大小

MU:方法區使用大小

CCSC:壓縮類空間大小

CCSU:壓縮類空間使用大小

OC:老年代大小

OU:老年代使用大小

YGC:新生代垃圾回收次數

FGC:老年代垃圾回收次數

FGCT:老年代垃圾回收消耗時間

GCT:垃圾回收消耗總時間

gcoldcapacity:新生代及其空間使用情況

jstat -gcoldcapacity 4718 500 10

圖8

OGCMN:老年代最小容量

OGCMX:老年代最大容量

OGC:當前老年代大小

OC:老年代大小

YGC:新生代垃圾回收次數

FGC:老年代垃圾回收次數

FGCT:老年代垃圾回收消耗時間

GCT:垃圾回收消耗總時間

gcpermcapacity:永久代容量的使用情況

PGCMN:perm代中最小容量 (KB)

PGCMX:perm代的最大容量 (KB)  

PGC:perm代當前新生成的容量 (KB)

PC:Perm(持久代)的容量 (KB)

YGC:從應用程序啓動到採樣時新生代中gc次數

FGC:從應用程序啓動到採樣時老年代(全gc)gc次數

FGCT:從應用程序啓動到採樣時老年代(全gc)gc所用時間(s)

GCT:從應用程序啓動到採樣時gc用的總時間(s)

printcompilation:hotSpot編譯器方法統計

jstat -printcompilation 4718 500 10

圖9

Compiled:最近編譯方法的數量

Size:最近編譯方法的字節碼數量

Type:最近編譯方法的編譯類型

Method:方法名標識



作者:smallAttr
鏈接:https://www.jianshu.com/p/35dd22216de4
來源:簡書
著作權歸作者所有。商業轉載請聯繫作者獲得授權,非商業轉載請註明出處。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章