在老/年代有很多空间的时候,我看到频繁的主要gc

时间:2013-11-15 18:51:17

标签: java garbage-collection

当老/年轻人有很多空间时,我看到频繁的主要gc。

我唯一看到的是幸存者空间始终是100%满满的。 java vm args如下所示

-Xms2200m -Xmx2200m -XX:NewSize=600m -XX:MaxNewSize=600 -XX:SurvivorRatio=3 -XX:PermSize=128m -XX:MaxPermSize=292m -XX:+UseParNewGC -XX:+UseTLAB -XX:+UseConcMarkSweepGC

-XX:+CMSClassUnloadingEnabled -XX:+CMSPermGenSweepingEnabled -XX:+PrintTenuringDistribution

在下面添加指向gc日志的链接。请提供有关我应该注意什么的任何指导。

http://sdrv.ms/1fH9Bm7

由于

1 个答案:

答案 0 :(得分:1)

幸存者空间100%通常都可以(理想情况下它应该略低于100%)。

这两篇文章可以为您提供关于代际GC和CMS机制的基本概念

回到你的问题。

您启用了类卸载(XX:+CMSClassUnloadingEnabled),这意味着以下内容。 如果PERM gen使用率接近其极限(例如90%),这对于PERM来说是完全正常的,那么将开始CMS集合。如果没有要卸载的类,CMS循环将不会释放PERM中的任何空间,并且下一个CMS集合将立即触发。

简而言之,如果PERM填充接近其容量 - 并发收集将不停地运行。