Java中jstat命令的使用詳解
jstat命令簡(jiǎn)介
jstat(Java Virtual Machine Statistics Monitoring Tool)是JDK提供的一個(gè)可以監(jiān)控Java虛擬機(jī)各種運(yùn)行狀態(tài)信息的命令行工具。它可以顯示Java虛擬機(jī)中的類(lèi)加載、內(nèi)存、垃圾收集、即時(shí)編譯等運(yùn)行狀態(tài)的信息。
jstat命令參數(shù)
命令語(yǔ)法:
jstat generalOptions
jstat outputOptions [-t] [-h<lines>] <vmid> [<interval> [<count>]]
命令參數(shù)說(shuō)明:
- generalOptions:通用選項(xiàng),如果指定一個(gè)通用選項(xiàng),就不能指定任何其他選項(xiàng)或參數(shù)。它包括如下兩個(gè)選項(xiàng):
- -help:顯示幫助信息。
- -options:顯示outputOptions參數(shù)的列表。
- outputOptions:輸出選項(xiàng),指定顯示某一種Java虛擬機(jī)信息。
- -t:把時(shí)間戳列顯示為輸出的第一列。這個(gè)時(shí)間戳是從Java虛擬機(jī)的開(kāi)始運(yùn)行到現(xiàn)在的秒數(shù)。
- -h n:每顯示n行顯示一次表頭,其中n為正整數(shù)。默認(rèn)值為 0,即僅在第一行數(shù)據(jù)顯示一次表頭。
- vmid:虛擬機(jī)唯一ID(LVMID,Local Virtual Machine Identifier),如果查看本機(jī)就是Java進(jìn)程的進(jìn)程ID。
- interval:顯示信息的時(shí)間間隔,單位默認(rèn)毫秒。也可以指定秒為單位,比如:1s。如果指定了該參數(shù),jstat命令將每個(gè)這段時(shí)間顯示一次統(tǒng)計(jì)信息。
- count:顯示數(shù)據(jù)的次數(shù),默認(rèn)值是無(wú)窮大,這將導(dǎo)致jstat命令一直顯示統(tǒng)計(jì)信息,直到目標(biāo)JVM終止或jstat命令終止。
輸出選項(xiàng)
如果不指定通用選項(xiàng)(generalOptions),則可以指定輸出選項(xiàng)(outputOptions)。輸出選項(xiàng)決定jstat命令顯示的內(nèi)容和格式,具體如下:
- -class:顯示類(lèi)加載、卸載數(shù)量、總空間和裝載耗時(shí)的統(tǒng)計(jì)信息。
- -compiler:顯示即時(shí)編譯的方法、耗時(shí)等信息。
- -gc:顯示堆各個(gè)區(qū)域內(nèi)存使用和垃圾回收的統(tǒng)計(jì)信息。
- -gccapacity:顯示堆各個(gè)區(qū)域的容量及其對(duì)應(yīng)的空間的統(tǒng)計(jì)信息。
- -gcutil:顯示有關(guān)垃圾收集統(tǒng)計(jì)信息的摘要。
- -gccause:顯示關(guān)于垃圾收集統(tǒng)計(jì)信息的摘要(與-gcutil相同),以及最近和當(dāng)前垃圾回收的原因。
- -gcnew:顯示新生代的垃圾回收統(tǒng)計(jì)信息。
- -gcnewcapacity:顯示新生代的大小及其對(duì)應(yīng)的空間的統(tǒng)計(jì)信息。
- -gcold: 顯示老年代和元空間的垃圾回收統(tǒng)計(jì)信息。
- -gcoldcapacity:顯示老年代的大小統(tǒng)計(jì)信息。
- -gcmetacapacity:顯示元空間的大小的統(tǒng)計(jì)信息。
- -printcompilation:顯示即時(shí)編譯方法的統(tǒng)計(jì)信息。
jstat命令的顯示輸出被格式化為一個(gè)表,列用空格分隔。接下來(lái),我來(lái)了解一下每條輸出選項(xiàng)的列名。
-class選項(xiàng)
- Loaded:加載的類(lèi)的數(shù)量。
- Bytes:加載的類(lèi)所占用的字節(jié)數(shù)。
- Unloaded:卸載的類(lèi)的數(shù)量。
- Bytes:卸載的類(lèi)所占用的字節(jié)數(shù)。
- Time:執(zhí)行類(lèi)加載和卸載操作所花費(fèi)的時(shí)間。
舉個(gè)例子:
-compiler選項(xiàng)
- Compiled:執(zhí)行的編譯任務(wù)的數(shù)量。
- Failed:執(zhí)行編譯任務(wù)失敗的數(shù)量。
- Invalid:執(zhí)行編譯任務(wù)失效的數(shù)量。
- Time:執(zhí)行編譯任務(wù)所花費(fèi)的時(shí)間。
- FailedType:上次編譯失敗的編譯類(lèi)型。
- FailedMethod:上次編譯失敗的類(lèi)名和方法。
舉個(gè)例子:
-gc選項(xiàng)
- S0C:年輕代中第一個(gè)Survivor區(qū)的容量,單位為KB。
- S1C:年輕代中第二個(gè)Survivor區(qū)的容量,單位為KB。
- S0U:年輕代中第一個(gè)Survivor區(qū)已使用大小,單位為KB。
- S1U:年輕代中第二個(gè)Survivor區(qū)已使用大小,單位為KB。
- EC:年輕代中Eden區(qū)的容量,單位為KB。
- EU:年輕代中Eden區(qū)已使用大小,單位為KB。
- OC:老年代的容量,單位為KB。
- OU:老年代已使用大小,單位為KB。
- MC:元空間的容量,單位為KB。
- MU:元空間已使用大小,單位為KB。
- CCSC:壓縮類(lèi)的容量,單位為KB。
- CCSU:壓縮類(lèi)已使用大小,單位為KB。
- YGC:Young GC的次數(shù)。
- YGCT:Young GC所用的時(shí)間。
- FGC:Full GC的次數(shù)。
- FGCT:Full GC的所用的時(shí)間。
- GCT:GC的所用的總時(shí)間。
舉個(gè)例子:
-gccapacity選項(xiàng)
- NGCMN:年輕代最小的容量,單位為KB。
- NGCMX:年輕代最大的容量,單位為KB。
- NGC:當(dāng)前年輕代的容量,單位為KB。
- S0C:年輕代中第一個(gè)Survivor區(qū)的容量,單位為KB。
- S1C:年輕代中第二個(gè)Survivor區(qū)的容量,單位為KB。
- EC:年輕代中Eden區(qū)的容量,單位為KB。
- OGCMN:老年代最小的容量,單位為KB。
- OGCMX:老年代最大的容量,單位為KB。
- OGC:當(dāng)前老年代的容量,單位為KB。
- OC:當(dāng)前老年代的容量,單位為KB。
- MCMN:元空間最小的容量,單位為KB。
- MCMX:元空間最大的容量,單位為KB。
- MC:當(dāng)前元空間的容量,單位為KB。
- CCSMN:壓縮類(lèi)最小的容量,單位為KB。
- CCSMX:壓縮類(lèi)最大的容量,單位為KB。
- CCSC:當(dāng)前壓縮類(lèi)的容量,單位為KB。
- YGC:Young GC的次數(shù)。
- FGC:Full GC的次數(shù)。
舉個(gè)例子:
-gcutil選項(xiàng)
- S0:年輕代中第一個(gè)Survivor區(qū)使用大小占當(dāng)前容量的百分比。
- S1:年輕代中第二個(gè)Survivor區(qū)使用大小占當(dāng)前容量的百分比。
- E:Eden區(qū)使用大小占當(dāng)前容量的百分比。
- O:老年代使用大小占當(dāng)前容量的百分比。
- M:元空間使用大小占當(dāng)前容量的百分比。
- CCS:壓縮類(lèi)使用大小占當(dāng)前容量的百分比。
- YGC:Young GC的次數(shù)。
- YGCT:Young GC所用的時(shí)間。
- FGC:Full GC的次數(shù)。
- FGCT:Full GC的所用的時(shí)間。
- GCT:GC的所用的總時(shí)間。
舉個(gè)例子:
-gccause選項(xiàng)
- S0:年輕代中第一個(gè)Survivor區(qū)使用大小占當(dāng)前容量的百分比。
- S1:年輕代中第二個(gè)Survivor區(qū)使用大小占當(dāng)前容量的百分比。
- E:Eden區(qū)使用大小占當(dāng)前容量的百分比。
- O:老年代使用大小占當(dāng)前容量的百分比。
- M:元空間使用大小占當(dāng)前容量的百分比。
- CCS:壓縮類(lèi)使用大小占當(dāng)前容量的百分比。
- YGC:Young GC的次數(shù)。
- YGCT:Young GC所用的時(shí)間。
- FGC:Full GC的次數(shù)。
- FGCT:Full GC的所用的時(shí)間。
- GCT:GC的所用的總時(shí)間。
- LGCC:上次垃圾回收的原因。
- GCC:當(dāng)前垃圾回收的原因。
舉個(gè)例子:
-gcnew選項(xiàng)
- S0C:年輕代中第一個(gè)Survivor區(qū)的容量,單位為KB。
- S1C:年輕代中第二個(gè)Survivor區(qū)的容量,單位為KB。
- S0U:年輕代中第一個(gè)Survivor區(qū)已使用大小,單位為KB。
- S1U:年輕代中第二個(gè)Survivor區(qū)已使用大小,單位為KB。
- TT:對(duì)象在年輕代存活的次數(shù)。
- MTT:對(duì)象在年輕代存活的最大次數(shù)
- DSS:期望的Survivor區(qū)大小,單位為KB。
- EC:年輕代中Eden區(qū)的容量,單位為KB。
- EU:年輕代中Eden區(qū)已使用大小,單位為KB。
- YGC:Young GC的次數(shù)。
- YGCT:Young GC所用的時(shí)間。
舉個(gè)例子:
-gcnewcapacity選項(xiàng)
- NGCMN:年輕代最小的容量,單位為KB。
- NGCMX:年輕代最大的容量,單位為KB。
- NGC:當(dāng)前年輕代的容量,單位為KB。
- S0CMX:年輕代中第一個(gè)Survivor區(qū)最大的容量,單位為KB。
- S0C:年輕代中第一個(gè)Survivor區(qū)的容量,單位為KB。
- S1CMX:年輕代中第二個(gè)Survivor區(qū)最大的容量,單位為KB。
- S1C:年輕代中第二個(gè)Survivor區(qū)的容量,單位為KB。
- ECMX:年輕代中Eden區(qū)最大的容量,單位為KB。
- EC:年輕代中Eden區(qū)的容量,單位為KB。
- YGC:Young GC的次數(shù)。
- FGC:Full GC的次數(shù)。
舉個(gè)例子:
-gcold選項(xiàng)
- MC:元空間的容量,單位為KB。
- MU:元空間已使用大小,單位為KB。
- CCSC:壓縮類(lèi)的容量,單位為KB。
- CCSU:壓縮類(lèi)已使用大小,單位為KB。
- OC:老年代的容量,單位為KB。
- OU:老年代已使用大小,單位為KB。
- YGC:Young GC的次數(shù)。
- FGC:Full GC的次數(shù)。
- FGCT:Full GC的所用的時(shí)間。
- GCT:GC的所用的總時(shí)間。
舉個(gè)例子:
-gcoldcapacity選項(xiàng)
- OGCMN:老年代最小的容量,單位為KB。
- OGCMX:老年代最大的容量,單位為KB。
- OGC:當(dāng)前老年代的容量,單位為KB。
- OC:當(dāng)前老年代的容量,單位為KB。
- YGC:Young GC的次數(shù)。
- FGC:Full GC的次數(shù)。
- FGCT:Full GC的所用的時(shí)間。
- GCT:GC的所用的總時(shí)間。
舉個(gè)例子:
-gcmetacapacity選項(xiàng)
- MCMN:元空間最小的容量,單位為KB。
- MCMX:元空間最大的容量,單位為KB。
- MC:當(dāng)前元空間的容量,單位為KB。
- CCSMN:壓縮類(lèi)最小的容量,單位為KB。
- CCSMX:壓縮類(lèi)最大的容量,單位為KB。
- YGC:Young GC的次數(shù)。
- FGC:Full GC的次數(shù)。
- FGCT:Full GC的所用的時(shí)間。
- GCT:GC的所用的總時(shí)間。
舉個(gè)例子:
-printcompilation選項(xiàng)
Compiled:最近編譯方法執(zhí)行的編譯任務(wù)的數(shù)量。
Size:最近編譯方法的字節(jié)碼的字節(jié)數(shù)。
Type:最近編譯方法的編譯類(lèi)型。
Method:最近編譯方法的類(lèi)名和方法名。
舉個(gè)例子:
附實(shí)例使用:統(tǒng)計(jì)gc信息
各列意義:
S0C:年輕代中第一個(gè)存活區(qū)的大小
S1C:年輕代中第二個(gè)存活區(qū)的大小
S0U:年輕代中第一個(gè)存活區(qū)已使用的空間 (字節(jié))
S1U:年輕代中第二個(gè)存活區(qū)已使用的空間 (字節(jié))
EC: Edem區(qū)大小
EU: 年輕代中Edem區(qū)已使用的空間 (字節(jié))
OC: 老年代大小
OU: 老年代已使用的空間 (字節(jié))
PC: 持久代大小
PU: 持久代已使用的空間 (字節(jié))
YGC: 從應(yīng)用程序啟動(dòng)到采樣時(shí)young gc的次數(shù)
YGCT: 從應(yīng)用程序啟動(dòng)到采樣時(shí)young gc的所用的時(shí)間(s)
FGC: 從應(yīng)用程序啟動(dòng)到采樣時(shí)full gc的次數(shù)
FGCT: 從應(yīng)用程序啟動(dòng)到采樣時(shí)full gc的所用的時(shí)間
GCT: 從應(yīng)用程序啟動(dòng)到采樣時(shí)整個(gè)gc所用的時(shí)間
如果young gc所用的時(shí)間比較長(zhǎng),如幾秒幾十秒,則肯定不正常。
# jstat -gcutil 25444
S0 S1 E O P YGC YGCT FGC FGCT GCT 11.63 0.00 56.46 66.92 98.49 162 0.248 6 0.331 0.579
總結(jié)
到此這篇關(guān)于Java中jstat命令使用的文章就介紹到這了,更多相關(guān)Java jstat命令使用內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
使用Jenkins配置Git+Maven的自動(dòng)化構(gòu)建的方法
這篇文章主要介紹了使用Jenkins配置Git+Maven的自動(dòng)化構(gòu)建的方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-01-01SpringBoot2 整合MinIO中間件實(shí)現(xiàn)文件便捷管理功能
這篇文章主要介紹了SpringBoot2 整合MinIO中間件,實(shí)現(xiàn)文件便捷管理,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-07-07通過(guò)openOffice將office文件轉(zhuǎn)成pdf
這篇文章主要介紹了通過(guò)openOffice將office文件轉(zhuǎn)成pdf,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-11-11基于json解析神器 jsonpath的使用說(shuō)明
這篇文章主要介紹了基于json解析神器 jsonpath的使用說(shuō)明,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2021-02-02Java中@Pattern注解常用的校驗(yàn)正則表達(dá)式學(xué)習(xí)筆記
對(duì)于正則這個(gè)東西,對(duì)我來(lái)說(shuō)一直是很懵逼的,每次用每次查,然后還是記不住,下面這篇文章主要給大家介紹了關(guān)于Java中@Pattern注解常用的校驗(yàn)正則表達(dá)式學(xué)習(xí)筆記的相關(guān)資料,需要的朋友可以參考下2022-07-07Java數(shù)據(jù)結(jié)構(gòu)和算法之鏈表詳解
鏈表是一種物理存儲(chǔ)單元上非連續(xù)、非順序的存儲(chǔ)結(jié)構(gòu),java代碼實(shí)現(xiàn)單鏈表,插入,刪除和遍歷等功能,這篇文章主要給大家介紹了關(guān)于Java數(shù)據(jù)結(jié)構(gòu)和算法之鏈表的相關(guān)資料,需要的朋友可以參考下2024-01-01