Java:Full GC(永久代完整版)随机发生

时间:2015-05-23 20:37:01

标签: java garbage-collection permgen

我为我的java应用程序配置了以下参数-Xmx = 46g,-Xms = 46g,NewSize = 2g。

我们没有配置permgen的大小,但在JCONSOLE中它显示最大perm gen大小为83mb。

在运行稳定性测试时,我们可以看到随机地在GC日志中获得以下内容。

  

[Full GC(Permanent Generation Full)489.822:[CMS:   11384171K-> 4403070K(46137344K),10.9407280秒]   11572765K-> 4403070K(48024832K),[CMS Perm:37142K-> 37062K(37376K)],   10.9413340秒] [时间:用户= 10.80 sys = 0.13,真实= 10.94秒]

我找不到这个GC调用的原因,因为有永久生成的可用空间(因为83 mb显示为最大值,并且提交的perm gen内存显示为appx 37MB)。

请你分享一下你的想法吗?

由于 JK

1 个答案:

答案 0 :(得分:2)

即使您的 max PermGen可能是83 MB,但JVM在上面的日志点上只分配了36,5 MB。似乎可以公平地假设JVM执行完整的GC并尝试继续发布任何内容,然后再从操作系统请求更多内存以扩展其PermGen空间(最大为83 MB)。

您可以尝试使用-XX:PermSize设置初始PermGen尺寸。