JVM監控工具-jstat詳解

概述

監控JVM統計信息, 如gc信息, 類加載信息, JIT信息
命令格式: jstat [ generalOption | outputOptions vmid [ interval[s|ms] [ count ] ]

  • generalOption : jstat命令選項,如 -help或-options

  • outputOptions : 包含一個statOption的輸出選項

  • vmid : JVM的id, 即java進程id

  • interval [s|ms]: 監控間隔時間, 單位是秒或毫秒, 不加單位默認爲毫秒

  • count : 表示總共監控多少次, 默認是一直執行

參數

一般參數

  • -help : 打印幫助信息
  • -options : 展示參數列表
    在這裏插入圖片描述

輸出參數

其他參數

  • -h n : 每n行展示一次列標題
  • -t : 添加一個時間戳列到第一列, 時間戳時間是從JVM啓動開始計算

statOption(靜態參數)

jstat命令最重要的一些參數

-class : 展示類加載信息

在這裏插入圖片描述

列名稱 描述
Loaded 加載的class數量
Bytes 加載的class類大小, 單位KB
Unloaded 未加載的class數量
Bytes 未加載的class類大小, 單位KB

-compiler : 展示JVM即時編譯器的一些統計信息在這裏插入圖片描述

列名稱 描述
Compiled 執行的編譯任務的數量
Failed 編譯任務失敗的數量
Invalid 無效編譯任務的數量
Time 用於執行編譯任務的時間, 單位s
FailedType 上次編譯失敗的編譯類型
FailedMethod 上次編譯失敗的類名和方法

-gc : 展示gc信息, 主要是堆的gc信息在這裏插入圖片描述

列名稱 描述
S0C 當前S0(Survivor 0)空間容量, 單位KB
S1U 當前S1(Survivor 1)空間容量, 單位KB
S0U S0空間使用量, 單位KB
S1U S1空間使用量, 單位KB
EC 當前Eden區域容量, 單位KB
EU Eden區域使用量, 單位KB
OC 當前老年代容量, 單位KB
OU 老年代使用量, 單位KB
MC 元空間(Metaspace)容量, 單位KB
MU 元空間(Metaspace)使用量, 單位KB
CCSC 類指針壓縮空間容量, 單位KB
CCSU 類指針壓縮空間容量, 單位KB
YGC 新生代GC(Minor GC/Young GC)發生的次數
YGCT YGC所消耗的時間, 單位s
FGC Full GC發生的次數
FGCT Full GC消耗的時間, 單位s
GCT 所有GC消耗的總時間, 單位s

-gccapacity : 展示各代(新生代,老年代等)的容量以及相應的空間信息在這裏插入圖片描述

列名稱 描述
NGCMN 新生代最小容量, 單位KB
NGCMX 新生代最大容量, 單位KB
NGC 當前新生代容量, 單位KB
S0C 當前S0空間(survivor 0)容量, 單位KB
S1C 當前S1空間(survivor 1)容量, 單位KB
EC 當前Eden空間容量, 單位KB
OGCMN 老年代最小容量, 單位KB
OGCMX 老年代最大容量, 單位KB
OGC 當前老年代容量, 單位KB
OC 當前老年代容量, 單位KB. ps:這個參數有點費解, 和OGC是一樣的
MCMN 元空間(metaspace )最小容量, 單位KB
MCMX 元空間(metaspace )最大容量, 單位KB
MC 當前元空間(metaspace )容量, 單位KB
CCSMN CCS(Compressed class space)區域最小容量, 單位KB
CCSMX CCS空間最大容量, 單位KB
CCSC 當前CCS空間容量, 單位KB
YGC Young GC(Minor GC)發生次數
FGC Full GC發生次數

-gcutil : 展示gc概要信息

在這裏插入圖片描述

列名稱 描述
S0 S0(Survivor 0)空間使用百分比(相對於當前容量)
S1 S1(Survivor 1)空間使用百分比(相對於當前容量)
E Eden空間使用百分比(相對於當前容量)
O 老年代空間使用百分比(相對於當前容量)
M 元空間(Metaspace)使用百分比(相對於當前容量)
CCS CCS空間使用百分比
YGC 新生代GC(Minor GC/Young GC)發生的次數
YGCT YGC所消耗的時間, 單位s
FGC Full GC發生的次數
FGCT Full GC消耗的時間, 單位s
GCT 所有GC消耗的總時間, 單位s

-gccause : 展示gc概要信息(類似於gcutil), 展示最後一次和當前gc事件的原因

在這裏插入圖片描述
和gcutil展示信息一樣, 額外增加了兩列LGCC,GCC:

列名稱 描述
LGCC 上次GC原因
GCC 當前GC原因

-gcnew : 展示新生代gc相關信息

在這裏插入圖片描述

列名稱 描述
S0C 當前S0(Survivor 0)空間容量, 單位KB
S1C 當前S1(Survivor 1)空間容量, 單位KB
S0U S0空間使用量, 單位KB
S1U S1空間使用量, 單位KB
TT 對象在新生代存活的次數
MTT 對象在新生代存活的最大次數
DSS 期望的survivor空間大小, 單位KB
EC 當前Eden區域容量, 單位KB
EU Eden區域使用量, 單位KB
YGC 新生代GC(Minor GC/Young GC)發生的次數
YGCT YGC所消耗的時間, 單位s

-gcnewcapacity : 展示新生代(new generation)容量及其對應空間

在這裏插入圖片描述

列名稱 描述
NGCMN 新生代最小容量, 單位KB
NGCMX 新生代最大容量, 單位KB
NGC 當前新生代容量, 單位KB
S0CMX S0空間最大容量, 單位KB
S0C 當前S0空間容量, 單位KB
S1CMX S1空間最大容量, 單位KB
S1C 當前S1空間容量, 單位KB
ECMX Eden空間最大容量, 單位KB
EC 當前Eden空間容量, 單位KB
YGC 新生代GC(Minor GC/Young GC)發生的次數
FGC Full GC發生的次數

-gcold : 展示老年代(old generation)以及元空間(metaspace)相關gc信息

在這裏插入圖片描述

列名稱 描述
MC 元空間(Metaspace)容量, 單位KB
MU 元空間(Metaspace)使用量, 單位KB
CCSC CCS空間容量, 單位KB
CCSU CCS空間使用量, 單位KB
OC 當前老年代容量, 單位KB
OU 老年代使用量, 單位KB
YGC 新生代GC(Minor GC/Young GC)發生的次數
FGC Full GC發生的次數
FGCT Full GC消耗的時間, 單位s
GCT 所有GC消耗的總時間(包含YGC和FGC), 單位s

-gcoldcapacity : 展示老年代容量信息

在這裏插入圖片描述

列名稱 描述
OGCMN 老年代最小容量, 單位KB
OGCMX 老年代最大容量, 單位KB
OGC 當前老年代容量, 單位KB
OC 當前老年代容量, 單位KB
YGC 新生代GC(Minor GC/Young GC)發生的次數
FGC Full GC發生的次數
FGCT Full GC消耗的時間, 單位s
GCT 所有GC消耗的總時間(包含YGC和FGC), 單位s

-gcmetacapacity : 展示元空間(metaspace)容量信息

在這裏插入圖片描述

列名稱 描述
MCMN 元空間(Metaspace)最小容量, 單位KB
MCMX 元空間(Metaspace)最大容量, 單位KB
MC 當前元空間(Metaspace)容量, 單位KB
CCSMN CCS空間最小容量, 單位KB
CCSMX CCS空間最大容量, 單位KB
YGC 新生代GC(Minor GC/Young GC)發生的次數
FGC Full GC發生的次數
FGCT Full GC消耗的時間, 單位s
GCT 所有GC消耗的總時間(包含YGC和FGC), 單位s

-printcompilation : 展示編譯方法(JIT)相關信息

在這裏插入圖片描述

列名稱 描述
Compiled 由最近編譯的方法執行的編譯任務的數量
Size 最近編譯的方法的字節碼的字節數
Type 最近編譯的方法的編譯類型
Method 標識最近編譯的方法的類名和方法名

本文參考jdk官方文檔, 基於JDK8的, 不同的jdk版本可能會有一些差異
官網地址: https://docs.oracle.com/javase/8/docs/technotes/tools/unix/jstat.html

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