jstat通常用来分析系统的垃圾回收情况。
1)命令:
jps -l //显示当前所有java进程pid
找到对应的pid,然后使用jstat -gc pid命令,查看详细情况
S0C:第一个幸存区的大小
S1C:第二个幸存区的大小
S0U:第一个幸存区的使用大小
S1U:第二个幸存区的使用大小
EC:伊甸园区的大小
EU:伊甸园区的使用大小
OC:老年代大小
OU:老年代使用大小
MC:方法区大小
MU:方法区使用大小
CCSC:压缩类空间大小
CCSU:压缩类空间使用大小
YGC:年轻代垃圾回收次数
YGCT:年轻代垃圾回收消耗时间
FGC:老年代垃圾回收次数
FGCT:老年代垃圾回收消耗时间
GCT:垃圾回收消耗总时间
jstat -gccause pid 2000 #每格2秒输出结果
S0、S1 代表两个Survivor区;
E 代表 Eden 区;
O(Old)代表老年代;
P(Permanent)代表永久代;
YGC(Young GC)代表Minor GC次数;
YGCT代表Minor GC耗时;
FGC(Full GC)代表Full GC次数;
GCT代表Minor & Full GC共计耗时。
LGCC:最近垃圾回收的原因
GCC:当前垃圾回收的原因
jstat -gcutil pid 2000
S0、S1 代表两个Survivor区;
E 代表 Eden 区;
O(Old)代表老年代;
P(Permanent)代表永久代;
YGC(Young GC)代表Minor GC次数;
YGCT代表Minor GC耗时;
FGC(Full GC)代表Full GC次数;
GCT代表Minor & Full GC共计耗时。
Java 堆分为新生代和老年代,新生代一般划分为三块区域,Eden + From Survivor + To Survivor,Eden 和 Survivor 的内存比为8:1,每次只使用一个Eden 和一个 Survivor 区域,另一个Survivor 用于复制收集算法回收内存。