G1 - 定期发生两次连续的完全垃圾收集

时间:2014-09-30 13:56:58

标签: java garbage-collection java-7

我正在使用G1垃圾收集器,在Java 7更新45下,在CentOS 6 64位上有1g堆。 我定期看到两个完整的垃圾收集一个接一个地发生,而第一个清理非常少量的内存,第二个清理合理的数量。

我的gc日志示例:

consecutive full garbage collections

25分钟后,这又发生了一次:

consecutive full garbage collections

知道什么可以导致这种行为?为什么在第一个完整的gc期间没有清除内存?

我尝试使用最新的java 7(更新67)运行我的webapp,这种现象再次发生。

consecutive full garbage collections

如果我理解了gc日志,那么从下面的年轻gc开始,堆大小在18.8M增加,所以假设分配失败导致整个gc受此值限制。尽管堆上有更多的空白空间,为什么G1会触发完整的gc?从附图中可以看出堆大小永远不会超过900M,为什么?

Heap size graph

0 个答案:

没有答案