样例以jdk8环境为例
1.查看进程ID
jps
ps -ef | grep "java"
2.查看新生代和老年代的大小
2.1jmap
jmap -heap [pid]
3.查看垃圾收集器
jdk1.8 默认垃圾收集器Parallel Scavenge(新生代)+Parallel Old(老年代)
3.1 jmap
jmap -heap [pid]
3.2jinfo
jinfo -flag [options] pid
可用命令:
UseSerialGC
UseParNewGC
UseParallelGC
UseParallelOldGC
UseConcMarkSweepGC
UseCMSCompactAtFullCollection
3.3gc日志文件
需要在启动命令中使用如下参数
-XX:+PrintGCDetails -XX:+PrintGCDateStamps -Xloggc:/opt/logs/gc.txt
4.内存及gc 使用情况
4.1内存使用及gc压力整体情况
jsata -gc pid
-
S0C:第一个幸存区的大小
-
S1C:第二个幸存区的大小
-
S0U:第一个幸存区的使用量
-
S1U:第二个幸存区的使用量
-
EC:伊甸园区的大小
-
EU:伊甸园区的使用量
-
OC:老年代大小
-
OU:老年代使用量
-
MC:方法区大小
-
MU:方法区使用量
-
CCSC: 压缩类空间大小
-
CCSU: 压缩类空间使用量
-
YGC:年轻代垃圾回收次数
-
YGCT:年轻代垃圾回收消耗时间
-
FGC:老年代垃圾回收次数
-
FGCT:老年代垃圾回收消耗时间
-
GCT:总垃圾回收时间
4.2垃圾回收统计
jstat -gcutil pid
- S0: 新生代第一个 survivor 区已使用的百分比
- S1: 新生代第二个 survivor 区已使用的百分比
- E: 新生代已使用的百分比
- O: 老年代已使用的百分比
- M: 元数据区已使用的百分比
- CCSC: 压缩类空间使用的百分比
- YGC: 从应用启动到现在新生代垃圾回收的次数
- YGCT: 新生代垃圾回收消耗的时间
- FGC: 从应用启动到现在老年代垃圾回收的次数
- FGCT: 老年代垃圾回收消耗的时间
- GCT: 总垃圾回收时间