jstat主要用来查看当前java进程的各内存区域的使用情况以及GC的次数和总耗时。命令如下:
1
jstat -gcutil <pid> [interval] [times]
可以用[interval]来控制每隔多少毫秒重复输出一次,并通过[times]参数来控制输出的总次数。这两个参数都是可以省略的,如果都省略的话,就只输出一次。
下面举例说明一下,输出pid=53560的java进程的内存各区域的利用率,每隔1000毫秒输出一次,共输出五次。
1
2
3
4
5
6
7
8
$ jstat -gcutil 53560 1000 5
S0 S1 E O M CCS YGC YGCT FGC FGCT GCT
0.00 100.00 4.96 3.23 95.51 93.53 6 0.084 0 0.000 0.084
0.00 100.00 4.96 3.23 95.51 93.53 6 0.084 0 0.000 0.084
0.00 100.00 4.96 3.23 95.51 93.53 6 0.084 0 0.000 0.084
0.00 100.00 4.96 3.23 95.51 93.53 6 0.084 0 0.000 0.084
0.00 100.00 4.96 3.23 95.51 93.53 6 0.084 0 0.000 0.084
简单解释下其它列的含义
| 列名 | 描述 |
|---|---|
| S0 | 幸存区Survior S0利用率占空间当前容量的百分比 |
| S1 | 幸存区Survior S1利用率占空间当前容量的百分比 |
| E | Eden区利用率占空间当前容量的百分比 |
| O | Old老年代利用率占空间当前容量的百分比 |
| M | Metaspace元空间利用率占空间当前容量的百分比 |
| CCS | 以百分比形式压缩的类空间利用率 |
| YGC | 年轻代 GC 事件的数量 |
| YGCT | 年轻代垃圾回收时间 |
| FGCT | 老年代GC时间 |
| GCT | 总垃圾回收时间 |
如果你想关注各个内存区域的具体大小,而不仅仅是百分比,可以使用jstat -gc,用法相同,例如
1
2
3
4
5
6
7
8
$ jstat -gc 53560 1000 5
S0C S1C S0U S1U EC EU OC OU MC MU CCSC CCSU YGC YGCT FGC FGCT GCT
0.0 13312.0 0.0 13312.0 1156096.0 57344.0 927744.0 29959.0 62976.0 60147.5 8448.0 7901.7 6 0.084 0 0.000 0.084
0.0 13312.0 0.0 13312.0 1156096.0 57344.0 927744.0 29959.0 62976.0 60147.5 8448.0 7901.7 6 0.084 0 0.000 0.084
0.0 13312.0 0.0 13312.0 1156096.0 57344.0 927744.0 29959.0 62976.0 60147.5 8448.0 7901.7 6 0.084 0 0.000 0.084
0.0 13312.0 0.0 13312.0 1156096.0 57344.0 927744.0 29959.0 62976.0 60147.5 8448.0 7901.7 6 0.084 0 0.000 0.084
0.0 13312.0 0.0 13312.0 1156096.0 57344.0 927744.0 29959.0 62976.0 60147.5 8448.0 7901.7 6 0.084 0 0.000 0.084
列差不多,只是将百分比一分为二了,C结尾的表示总容量(Capacity),U结尾表示已使用的量(Utilization)。单位是KB。
| 列名 | 描述 |
|---|---|
| S0C | 幸存区Survior1 S0空间容量 (kb) |
| S1C | 幸存区Survior S1空间容量(kb) |
| S0U | 幸存区Survior1 S0使用空间(kb) |
| S1U | 幸存区Survior S1 使用空间(kb) |
| EC | Eden 区空间容量(kb) |
| EU | Eden 区使用空间(kb) |
| OC | 老年代Old空间容量(kb) |
| OU | 老年代Old(kb) |
| MC | 元空间MetaSpace 空间容量(kb) |
| MU | 元空间MetaSpace使用空间(kb) |
| CCSC | 压缩类空间容量(kb) |
| CCSU | 压缩类使用空间(kb) |
| YGC | 年轻代gc回收数量 |
| YGCT | 年轻代gc收集时间 |
| FGC | full gc执行数量 |
| FGCT | full gc 执行总时间 |
| GCT | 总垃圾回收时间 |