托儿所java堆被消耗和清理得太快

时间:2016-11-22 10:48:07

标签: java memory-leaks garbage-collection jvm

我正在使用WebSphere Application Server,WAS服务器使用IBM JVM运行,该策略名为Generational Concurrent(gencon),它将堆内存分为两部分:

托儿所:新物品

终身:长寿的物品

读取native_stderr.log我可以看到垃圾收集器运行很多时间由于托儿所区域的分配失败而触发。

我有一个奇怪的行为。 我的JVM配置最大为20GB。 我的托儿所面积实际上差不多4gb。查看下面的图表(粉色线)。 Nursery usage and GC result calls

当GC运行时,它释放了近3.5gb。 几秒钟后(例如大约30秒),所有这3.5都已消耗,GC需要再次运行......并且它再次释放almos 3.5gb,并且在几秒钟之后全部再次消耗,因此GC再次运行,我有这个GC上的一种无限循环。

查看下表,您会发现此行为。 GC calls (data table)

有没有办法检查谁(线程,对象)如此快速地消耗托儿所?

我真的很感激任何帮助。

由于

0 个答案:

没有答案