推断我的垃圾收集日志

时间:2012-05-30 06:48:10

标签: java logging garbage-collection jvm

你能解释这个日志吗?

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] 

2 个答案:

答案 0 :(得分:1)

您的new generation填满的速度非常快,tenured generation的并发收集无法在new generation填满之前完成。

尝试增加new generation

有关详细说明,请查看here

答案 1 :(得分:1)

首先,您正在使用CMS垃圾收集器(在Understanding pauses of CMS collector

查找有关它的更多信息

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

可能的原因 - 堆太小了 - 年轻一代太小,许多年轻物体正在泄露终身空间。