一、概述
jstat命令可以查看堆内存各部分的使用量,以及加载类的数量。命令的格式如下:
jstat [-命令选项] [-t] [-h<lines>] [vmid] [间隔时间/默认单位是ms毫秒] [查询次数]
# 示例:每500毫秒打印一次,总共打印10次,每三行数据之后输出一次标题
jstat -gc -t -h3 1 500 10
命令选项 | 作用 |
---|
-gc | 监视Java堆状况,包括Eden区、2个Survivor区、老年代、永久代等容量。已用空间,垃圾收集时间合计等信息 |
-gccapacity | 监视内容与-gc基本相同,但输出主要关注Java堆各个区域使用到的最大、最小空间 |
-gcutil | 监视内容与-gc基本相同,但输出主要关注已使用空间占总空间的百分比 |
-gccause | 与-gcutil功能一样,但是会额外输出导致上一次垃圾收集产生的原因 |
-gcnew | 显示新生代统计信息 |
-gcnewcapacity | 统计新生代及内存使用情况,输出主要关注使用到的最大、最小空间 |
-gcold | 统计老年代和元空间使用情况 |
-gcoldcapacity | 统计老年代内存使用情况,输出主要关注使用到的最大、最小空间 |
-gcmetacapacity | 统计元空间使用情况 |
-printcompilation | 输出已经被及时编译的方法 |
-compiler | 输出及时编译器编译过的方法、耗时等信息 |
-class | 监视类加载、卸载数量、总空间以及类装载所耗时间 |
-gcpermcapacity | 输出永久代的最大、最小空间 (JDK1.8已经完全移除永久代) |
二、输入项数说明
jstat -gc输入项数说明
[root@root ~]# jstat -gc 1
S0C S1C S0U S1U EC EU OC OU MC MU CCSC CCSU YGC YGCT FGC FGCT GCT
17472.0 17472.0 0.0 1248.6 139776.0 7359.2 349568.0 233485.7 149632.0 144590.5 16768.0 15863.7 1119 11.856 11 2.871 14.727
输入项 | 描述 |
---|
S0C | 第一个幸存区的总容量(KB) |
S1C | 第二个幸存区的总容量(KB) |
S0U | 第一个幸存区已使用的容量(KB) |
S1U | 第二个幸存区已使用的容量(KB) |
EC | 伊甸区的总容量(KB) |
EU | 伊甸区已使用容量(KB) |
OC | 老年区的总容量(KB) |
OU | 老年代使用大小(KB) |
MC | 元空间的总容量(KB) |
MU | 元空间已使用容量(KB) |
CCSC | 压缩类空间总容量(KB) |
CCSU | 压缩类空间已使用总容量(KB) |
YGC | 新生代GC次数 |
YGCT | 新生代GC总耗费时间 |
FGC | FullGC次数 |
FGCT | FullGC总耗费时间 |
GCT | GC总耗费时间 |
jstat -gccapacity输入项数说明
[root@root ~]# jstat -gccapacity 1
NGCMN NGCMX NGC S0C S1C EC OGCMN OGCMX OGC OC MCMN MCMX MC CCSMN CCSMX CCSC YGC FGC
10880.0 174720.0 174720.0 17472.0 17472.0 139776.0 21888.0 349568.0 349568.0 349568.0 0.0 1181696.0 149632.0 0.0 1048576.0 16768.0 1119 11
输入项 | 描述 |
---|
NGCMN | 新生代最小容量(kB) |
NGCMX | 新生代最大容量 (kB) |
NGC | 当前新生代容量(kB) |
S0C | 第一个幸存区大小 (kB) |
S1C | 第二个幸存区的大小 (kB) |
EC | 伊甸园区的大小(kB) |
OGCMN | 老年代最小容量 (kB) |
OGCMX | 老年代最大容量 (kB) |
OGC | 当前老年代容量 (kB) |
OC | 当前老年代大小(kB) |
MCMN | 最小元数据容量 (kB) |
MCMX | 最大元数据容量(kB) |
MC | 当前元数据空间大小(kB) |
CCSMN | 最小压缩类空间大小 (kB) |
CCSMX | 最大压缩类空间大小 (kB) |
CCSC | 当前压缩类空间大小 (kB) |
YGC | 年轻代gc次数 |
FGC | 老年代GC(FullGC)次数 |
jstat -gcutil输入项数说明
[root@root ~]# jstat -gcutil 1
S0 S1 E O M CCS YGC YGCT FGC FGCT GCT
6.68 0.00 39.54 66.79 96.66 94.62 1132 11.970 11 2.871 14.841
输入项 | 描述 |
---|
S0 | 第一幸存区已使用空间百分比 |
S1 | 第二幸存区已使用空间百分比 |
E | 伊甸区已使用空间百分比 |
O | 老年区已使用空间百分比 |
M | 元空间使用百分比 |
CCS | 压缩类空间使用百分比 |
YGC | 新生代GC次数 |
YGCT | 新生代GC总耗费时间 |
FGC | 老年代GC次数 |
FGCT | 老年代GC耗费时间 |
GCT | GC总耗时 |
jstat -gccause输入项数说明
[root@root ~]# jstat -gccause 1
S0 S1 E O M CCS YGC YGCT FGC FGCT GCT LGCC GCC
6.67 0.00 90.76 66.79 96.66 94.62 1130 11.949 11 2.871 14.820 Allocation Failure No GC
输入项 | 描述 |
---|
S0 | 第一幸存区已使用空间百分比 |
S1 | 第二幸存区已使用空间百分比 |
E | 伊甸区已使用空间百分比 |
O | 老年区已使用空间百分比 |
M | 元空间使用百分比 |
CCS | 压缩类空间使用百分比 |
YGC | 新生代GC次数 |
FGC | 老年代GC次数 |
LGCC | 最近一次GC原因 |
GCC | 当前GC原因 |
jstat -gcnew输入项数说明
[root@root ~]# jstat -gcnew 1
S0C S1C S0U S1U TT MTT DSS EC EU YGC YGCT
17472.0 17472.0 0.0 1350.4 15 15 8736.0 139776.0 73826.1 1131 11.957
输入项 | 描述 |
---|
S0C | 第一幸存区总空间大小(KB |
S1C | 第二幸存区总空间大小(KB) |
S0U | 第一幸存区已使用空间大小(KB) |
S1U | 第二幸存区已使用空间大小(KB) |
TT | 提升阈值 |
MTT | 最大阈值 |
DSS | 预期survivor区域大小 (KB) |
EC | 伊甸区总空间大小(KB) |
EU | 伊甸区已使用空间大小(KB) |
YGC | 年轻代gc次数 |
YGCT | 新生代GC总耗费时间 |
jstat -gcnewcapacity输入项数说明
[root@root ~]# jstat -gcnewcapacity 1
NGCMN NGCMX NGC S0CMX S0C S1CMX S1C ECMX EC YGC FGC
10880.0 174720.0 174720.0 17472.0 17472.0 17472.0 17472.0 139776.0 139776.0 1131 11
输入项 | 描述 |
---|
NGCMN | 新生代最小空间大小(KB) |
NGCMX | 新生代最大空间大小(KB) |
NGC | 当前新生代空间大小(KB) |
S0CMX | 第一幸存区最大空间大小(KB) |
S0C | 第一幸存区当前空间大小(KB) |
S1CMX | 第二幸存区最大空间大小(KB) |
S1C | 第二幸存区当前空间大小(KB) |
ECMX | 伊甸区最大空间大小(KB) |
EC | 伊甸区当前空间大小(KB) |
YGC | 新生代GC次数 |
FGC | 老年代GC次数 |
jstat -gcold输入项数说明
[root@root ~]# jstat -gcold 1
MC MU CCSC CCSU OC OU YGC FGC FGCT GCT
149632.0 144638.0 16768.0 15866.4 349568.0 233488.9 1132 11 2.871 14.841
输入项 | 描述 |
---|
MC | 元空间总大小(KB) |
MU | 元空间已使用大小(KB) |
CCSC | 压缩类空间总大小(KB) |
CCSU | 压缩类空间已使用大小(KB) |
OC | 老年区空间总大小(KB) |
OU | 老年区已使用大小(KB) |
YGC | 新生代GC次数 |
FGC | 老年代GC次数 |
FGCT | 老年代GC总耗时 |
GCT | GC总耗时 |
jstat -gcoldcapacity输入项数说明
[root@root ~]# jstat -gcoldcapacity 1
OGCMN OGCMX OGC OC YGC FGC FGCT GCT
21888.0 349568.0 349568.0 349568.0 1132 11 2.871 14.841
输入项 | 描述 |
---|
OGCMN | 老年区占用最小空间(KB) |
OGCMX | 老年区占用最大空间(KB) |
OGC | 当前老年区空间(KB) |
OC | 当前老年区空间(KB) |
YGC | 新生代GC次数 |
FGC | 老年代GC次数 |
FGCT | 老年代GC总耗时 |
GCT | GC总耗时 |
jstat -gcmetacapacity输入项数说明
[root@root ~]# jstat -gcmetacapacity 1
MCMN MCMX MC CCSMN CCSMX CCSC YGC FGC FGCT GCT
0.0 1181696.0 149632.0 0.0 1048576.0 16768.0 1131 11 2.871 14.828
输入项 | 描述 |
---|
MCMN | 元空间最小空间大小(KB) |
MCMX | 元空间最大空间大小(KB) |
MC | 元空间当前空间大小(KB) |
CCSMN | 压缩类空间最小空间大小(KB) |
CCSMX | 压缩类空间最大空间大小(KB) |
CCSC | 压缩类空间当前空间大小(KB) |
YGC | 新生代GC次数 |
FGC | 老年代GC次数 |
FGCT | 老年代GC耗费时间 |
GCT | GC总耗费时间 |
jstat -printcompilation 输入项数说明
[root@root ~]# jstat -printcompilation 1
Compiled Size Type Method
31174 1055 1 sun/reflect/GeneratedMethodAccessor214 invoke
输入项 | 描述 |
---|
Compiled | 已编译方法次数 |
Size | 最近一次方法编译大小 |
Type | 最近一次编译方法类型 |
Method | 最近一次编译方法 |
jstat -compiler输入项数说明
[root@root ~]# jstat -compiler 1
Compiled Failed Invalid Time FailedType FailedMethod
31073 3 0 182.63 1 com/mysql/jdbc/AbandonedConnectionCleanupThread run
输入项 | 描述 |
---|
Compiled | 编译成功数 |
Failed | 编译失败数 |
Invalid | 无效数量 |
Time | 编译时间 |
FailedType | 最后一次编译失效类型 |
FailedMethod | 最后一次编译失效的方法 |
jstat -class输入项数说明
[root@root ~]# jstat -class 1
Loaded Bytes Unloaded Bytes Time
24301 45978.0 277 411.9 44.91
输入项 | 描述 |
---|
Loaded | 加载class的数量 |
Bytes | 加载class的大小(单位KB) |
Unloaded | 卸载class的数量 |
Bytes | 卸载class的大小(单位KB) |
Time | 加载和卸载class所耗费的时间 |