版本
# java -version
java version "1.8.0_162"
Java(TM) SE Runtime Environment (build 1.8.0_162-b12)
Java HotSpot(TM) 64-Bit Server VM (build 25.162-b12, mixed mode
命令语法
jstat [ generalOption | outputOptions vmid [ interval[s|ms] [ count ] ]
generalOption : -help or -options
outputOptions : 一个单独的statOption ,后面还可以接 -t,-h,-J
vmid : 虚拟机标志,用法为 [protocol:][//]lvmid[@hostname[:port]/servername] ,详细可查看官方文档。
interval [s|ms] : 采样间隔,默认单位为ms,可指定单位s或ms。
count : 采样次数
outputOptions 主要内容是statOption ,主要功能如下:
class: 显示类加载器行为的统计
compiler: java HotSpt虚拟机JIT编译器行为的统计
gc: gc回收堆行为的统计
gccapacity: 各种代和相应的空间的容量统计
gccause: gc回收统计,同 gcutil ,额外增加了两列,上次和当前gc的原因。
gcnew: 新生代行为的统计
gcnewcapacity: 新生代及其空间的大小统计
gcold: 老年代和元空间的行为的统计
gcoldcapacity: 老年代大小的统计
gcmetacapacity: 元空间大小的统计
gcutil: gc统计概要
printcompilation: JVM编译方法统计
outputOptions 还有另外三个:
-h n :n次采样打印列头,n默认为0,即第一行才打印列头。
-t : 每行前面打印时间戳。
-JjavaOption :比如 -J-Xms48m。
statOption 用法如下:
gcutil gc统计概要
jstat -gcutil PID INTERVAL COUNT
S0 S1 E O M CCS YGC YGCT FGC FGCT GCT
11.86 0.00 55.43 2.42 93.52 89.92 18 0.303 2 0.210 0.513
gcutil GC原因
# 与 -gcutil 内容一样,但增加了两列,上次和当前的GC原因 #
jstat -gccause 19742 3000 1000
S0 S1 E O M CCS YGC YGCT FGC FGCT GCT LGCC GCC
78.14 0.00 85.17 4.01 94.74 92.81 74 0.765 2 0.210 0.976 Allocation Failure No GC
LGCC -- Cause of last garbage collection
GCC -- Cause of current garbage collection
gc GC堆统计
jstat -gc PID INTERVAL COUNT
S0C S1C S0U S1U EC EU OC OU MC MU CCSC CCSU YGC YGCT FGC FGCT GCT
11776.0 11776.0 9186.3 0.0 1025024.0 349845.1 2097152.0 88782.7 45144.0 42730.5 7256.0 6827.8 82 0.829 2 0.210 1.039
S0C -- 当前S0容量
S1C -- 当前S1容量
S0U -- S0使用量
S1U -- S1使用量
EC -- 当前E区容量
EU -- E区使用
OC -- 当前老年空间容量
OU -- 老年空间使用
MC -- 元空间容量
MU -- 元空间使用
CCSC -- 压缩类空间容量
CCSU -- 压缩类空间已使用
gcmetacapacity M区大小统计
jstat -gcmetacapacity PID INTERVAL COUNT
MCMN MCMX MC CCSMN CCSMX CCSC YGC FGC FGCT GCT
0.0 1081344.0 37208.0 0.0 1048576.0 4696.0 20 2 0.210 0.528
MCMN -- 元空间最小容量(KB)
MCMX -- 元空间最大容量(KB)
MC -- 元空间容量(KB)
CCSMN -- 压缩类空间最小容量(KB)
CCSMX -- 压缩类空间最大容量(KB)
CCSC -- 压缩类空间容量(KB)
YGC,FGC,FGCT,GCT -- 这四个和-gcutil的最后四项是一致的。
gcoldcapacity 老年代大小统计
jstat -gcoldcapacity PID INTERVAL COUNT
OGCMN OGCMX OGC OC YGC FGC FGCT GCT
2097152.0 2097152.0 2097152.0 2097152.0 22 2 0.210 0.544
OGCMN -- 老年代最小容量(KB)
OGCMX -- 老年代最大容量(KB)
OGC -- 当前老年代容量(KB) Current old generation capacity (kB)
OC -- 当前老空间容量(KB) Current old space capacity (kB).
gcold 老年代和元空间行为统
jstat -gcold PID INTERVAL COUNT
MC MU CCSC CCSU OC OU YGC FGC FGCT GCT
37976.0 35620.3 4952.0 4453.2 2097152.0 51094.6 26 2 0.210 0.578
MC -- 元空间容量 KB
MU -- 元空间已用 KB
CCSC -- 压缩类空间容量 KB
CCSU -- 压缩类空间已用 KB
OC -- 当前老空间容量 KB
OU -- 老空间已用 KB
gcnewcapacity 新生代空间大小统计
jstat -gcnewcapacity PID INTERVAL COUNT
NGCMN NGCMX NGC S0CMX S0C S1CMX S1C ECMX EC YGC FGC
1048576.0 1048576.0 1048576.0 349184.0 37376.0 349184.0 39424.0 1047552.0 967168.0 29 2
NGCMN -- 新生代最小容量 KB
NGCMX -- 新生代最大容量 KB
NGC -- 当前新生代容量 KB
S0CMX -- S0最大容量 KB
S0C -- S0当前容量 KB
S1CMX -- S1最大容量 KB
S1C -- S1当前容量 KB
ECMX -- E区最大容量 KB
EC -- E区当前容量 KB
gcnew 新生代统计
jstat -gcnew PID INTERVAL COUNT
S0C S1C S0U S1U TT MTT DSS EC EU YGC YGCT
31232.0 32768.0 0.0 10210.9 15 15 31232.0 981504.0 801429.1 33 0.425
S0C -- S0区当前容量 KB
S1C -- S1区当前容量 KB
S0U -- S0区使用量 KB
S1U -- S1区使用量 KB
TT -- Tenuring Threshold 任期阈值 (单位?)
MTT -- Maximum tenuring threshold
DSS -- 期望的S区大小 Desired survivor size (kB)
EC -- 当前E区空间容量 KB
EU -- E区空间已用 KB
gccapacity 内存池生成和空间容量
jstat -gccapacity PID INTERVAL COUNT
NGCMN NGCMX NGC S0C S1C EC OGCMN OGCMX OGC OC MCMN MCMX MC CCSMN CCSMX CCSC YGC FGC
1048576.0 1048576.0 1048576.0 12288.0 12288.0 1024000.0 2097152.0 2097152.0 2097152.0 2097152.0 0.0 1087488.0 44376.0 0.0 1048576.0 7000.0 75 2
NGCMN -- 新生代最小容量 KB
NGCMX -- 新生代最大容量 KB
NGC -- 当前新生代容量 KB
S0C -- 当前S0区容量 KB
S1C -- 当前S1区容量 KB
EC -- 当前E区容量 KB
OGCMN -- 老年代最小容量 KB
OGCMX -- 老年代最大容量 KB
OGC -- 老年代当前容量 KB
OC -- 老年空间当前容量 KB
MCMN -- 元空间最小容量 KB
MCMX -- 元空间最大容量 KB
MC -- 元空间容量 KB
CCSMN -- 压缩类空间最小容量 KB
CCSMX -- 压缩类空间最大容量 KB
CCSC -- 压缩类空间容量 KB
compiler
jstat -compiler 19742 3000 1000
Compiled Failed Invalid Time FailedType FailedMethod
11283 6 0 113.24 1 com/mysql/jdbc/AbandonedConnectionCleanupThread run
class
jstat -class 19742 3000 1000
Loaded Bytes Unloaded Bytes Time
11555 16192.7 273 386.1 11.12