下面的gc log中的full gc是怎么触发的,理解不了,请大神看看~
2015-02-03T14:40:12.029+0800: 470.095: [GC [PSYoungGen: 1271672K->13218K(3940864K)] 1374109K->115656K(8135168K), 0.0061610 secs] [Times: user=0.05 sys=0.00, real=0.00 secs]
2015-02-03T14:40:12.036+0800: 470.101: [Full GC [PSYoungGen: 13218K->0K(3940864K)] [ParOldGen: 102437K->98542K(4194304K)] 115656K->98542K(8135168K) [PSPermGen: 64633K->64632K(262144K)], 0.3928440 secs] [Times: user=3.18 sys=0.02, real=0.40 secs]
2015-02-03T14:43:12.622+0800: 650.688: [GC [PSYoungGen: 2750752K->24677K(3932160K)] 2849294K->123219K(8126464K), 0.0274110 secs] [Times: user=0.06 sys=0.10, real=0.03 secs]
2015-02-03T14:43:12.650+0800: 650.715: [Full GC [PSYoungGen: 24677K->0K(3932160K)] [ParOldGen: 98542K->108727K(4194304K)] 123219K->108727K(8126464K) [PSPermGen: 65137K->65128K(262144K)], 0.4234160 secs] [Times: user=3.40 sys=0.03, real=0.42 secs]
2015-02-03T14:43:27.212+0800: 665.277: [GC [PSYoungGen: 828133K->12061K(3961344K)] 936860K->120788K(8155648K), 0.0092620 secs] [Times: user=0.05 sys=0.02, real=0.01 secs]
2015-02-03T14:43:27.221+0800: 665.287: [Full GC [PSYoungGen: 12061K->0K(3961344K)] [ParOldGen: 108727K->101742K(4194304K)] 120788K->101742K(8155648K) [PSPermGen: 65191K->65191K(262144K)], 0.2733550 secs] [Times: user=2.09 sys=0.01, real=0.27 secs]
从日志可以看出一些规律来,每次做完一次young gc会立马做一次full gc(时间几乎一致),此时young 区大小会变为0(开始大小和上一次young gc完的大小是一致的)
jdk版本为 1.7.0_55
JVM参数
-Xmx8192m -Xms8192m -XX:NewSize=4096m -XX:MaxNewSize=4096m -XX:SurvivorRatio=4 -XX:MaxPermSize=256m -XX:PermSize=256m