【问题标题】:Infer my Garbage Collection Log推断我的垃圾收集日志
【发布时间】:2012-05-30 06:48:09
【问题描述】:

你能解释一下这个日志吗?

142.678: [Full GC 142.678: [CMS142.764: [CMS-concurrent-mark: 0.088/0.088 secs] [Times: user=0.09 sys=0.00, real=0.09 secs] 
     (concurrent mode failure): 21888K->19536K(21888K), 0.2969878 secs] 31679K->23701K(31680K), [CMS Perm : 1489K->1489K(12288K)], 0.2972058 secs] [Times: user=0.30 sys=0.00, real=0.30 secs] 

【问题讨论】:

标签: java logging garbage-collection jvm


【解决方案1】:

您的new generation 填满得如此之快,tenured generation 的并发收集无法在new generation 填满之前完成。

尝试增加new generation

更详细的解释请看here

【讨论】:

    【解决方案2】:

    首先,您正在使用 CMS 垃圾收集器(在 Understanding pauses of CMS collector 了解更多信息

    (并发模式失败)表示后台垃圾回收器无法足够快地回收内存(年轻回收器未能在tenured generation中找到一些空闲空间来提升对象)并且JVM已切换到stop-the -world FullGC

    可能的原因 - 堆太小 - 年轻代太小,很多年轻对象都在泄漏tenured空间。

    【讨论】:

      最近更新 更多