jstat使用詳解(分析JVM的使用情況)

2021-07-25 10:19:41 字數 2325 閱讀 3631

如下所示為jstat的命令格式

jstat - [-t] [-h]  [ ]
如下表示分析程序id為31736 的gc情況,每隔1000ms列印一次記錄,列印10次停止,每3行後列印指標頭部

jstat -gc

-h331736

1000

10

1 jstat -gc

jstat -gc ***x
其對應的指標含義如下:

引數描述

s0c年輕代中第乙個survivor(倖存區)的容量 (位元組)

s1c年輕代中第二個survivor(倖存區)的容量 (位元組)

s0u年輕代中第乙個survivor(倖存區)目前已使用空間 (位元組)

s1u年輕代中第二個survivor(倖存區)目前已使用空間 (位元組)

ec年輕代中eden(伊甸園)的容量 (位元組)

eu年輕代中eden(伊甸園)目前已使用空間 (位元組)

ocold代的容量 (位元組)

ouold代目前已使用空間 (位元組)

pcperm(持久代)的容量 (位元組)

puperm(持久代)目前已使用空間 (位元組)

ygc從應用程式啟動到取樣時年輕代中gc次數

ygct

從應用程式啟動到取樣時年輕代中gc所用時間(s)

fgc從應用程式啟動到取樣時old代(全gc)gc次數

fgct

從應用程式啟動到取樣時old代(全gc)gc所用時間(s)

gct從應用程式啟動到取樣時gc用的總時間(s)

2 jstat -gcutil

檢視gc的統計資訊

jstat -gcutil ***x
其對應的指標含義如下:

引數描述

s0年輕代中第乙個survivor(倖存區)已使用的佔當前容量百分比

s1年輕代中第二個survivor(倖存區)已使用的佔當前容量百分比

e年輕代中eden(伊甸園)已使用的佔當前容量百分比

oold代已使用的佔當前容量百分比

pperm代已使用的佔當前容量百分比

ygc從應用程式啟動到取樣時年輕代中gc次數

ygct

從應用程式啟動到取樣時年輕代中gc所用時間(s)

fgc從應用程式啟動到取樣時old代(全gc)gc次數

fgct

從應用程式啟動到取樣時old代(全gc)gc所用時間(s)

gct從應用程式啟動到取樣時gc用的總時間(s)

3 jstat -gccapacity

jstat -gccapacity ***x
其對應的指標含義如下:

引數描述

ngcmn

年輕代(young)中初始化(最小)的大小 (位元組)

ngcmx

年輕代(young)的最大容量 (位元組)

ngc年輕代(young)中當前的容量 (位元組)

s0c年輕代中第乙個survivor(倖存區)的容量 (位元組)

s1c年輕代中第二個survivor(倖存區)的容量 (位元組)

ec年輕代中eden(伊甸園)的容量 (位元組)

ogcmn

old代中初始化(最小)的大小 (位元組)

ogcmx

old代的最大容量 (位元組)

ogcold代當前新生成的容量 (位元組)

ocold代的容量 (位元組)

pgcmn

perm代中初始化(最小)的大小 (位元組)

pgcmx

perm代的最大容量 (位元組)

pgcperm代當前新生成的容量 (位元組)

pcperm(持久代)的容量 (位元組)

ygc從應用程式啟動到取樣時年輕代中gc次數

fgc從應用程式啟動到取樣時old代(全gc)gc次數

4 其他命令

1) 檢視年輕代物件的資訊及其佔用量。

jstat -gcnewcapacity ***x
2) 檢視老年代物件的資訊及其佔用量。

jstat -gcoldcapacity ***x
3) 檢視年輕代物件的資訊

jstat -gcnew ***x
4) 檢視老年代物件的資訊

jstat -gcold ***x
備註:其他命令未一一列出

JVM工具 1 堆疊檢查利器jstat的使用

loaded 載入class的數量 bytes 所占用空間大小 unloaded 未載入數量 bytes 未載入占用空間 time 時間 compiled 編譯數量。failed 失敗數量 invalid 不可用數量 time 時間 failedtype 失敗型別 failedmethod 失敗的方...

詳解JVM 中的StringTable

字串常量池是 jvm中的乙個重要結構,用於儲存jvm執行時產生的字串。在jdk7之前在方法區中,儲存的是字串常量。而字串常量池在 jdk7開始移入堆中,隨之而來的是除了儲存字串常量外,還可以儲存字串引用 因為在堆中,引用堆中的字串常量很方便,所以可以儲存引用 這使得很多字串的操作在 jdk7中和在之...

詳解JVM的分代模型

前言 本篇文章我們將針對jvm堆記憶體的分代模型做乙個詳細的解析,和大家一起輕鬆理解jvm的分代模型。相信看過其他文章的小夥伴們可能都知道,jvm的分代模型包括 年輕代 老年代 永久代。那麼它們分別代表著什麼角色呢?我們先來看一段 public class main public static vo...