WebSphere 9/JRE1.8应用间歇性JVM崩溃:GC断言失败求助
WebSphere 9/JRE 1.8下JVM间歇性崩溃(LargeObjectAllocateStats断言失败)处理方案
问题分析
这是IBM J9虚拟机在Balanced GC策略下的已知内存管理缺陷,触发原因是大对象分配统计模块计算size class索引时超出预设最大值,导致断言失败进而引发JVM崩溃。
临时规避方案
- 切换GC策略:将当前的Balanced GC替换为
gencon或optthruput,在WebSphere的JVM参数中添加-Xgcpolicy:gencon,保存后重启应用服务器。 - 调整堆内存配置:缩小最大堆内存至3.5GB以内,或增大最小堆内存到3GB,减少堆的动态伸缩范围,降低触发该bug的概率。
根本修复方案
- 升级JRE补丁:该缺陷已在IBM JRE 1.8.0 SR7 FP15及后续版本中修复,需升级WebSphere配套的J9 JRE到对应版本,确保包含
LargeObjectAllocateStats.cpp相关的断言修复。 - 升级WebSphere Fix Pack:将WebSphere 9升级到9.0.5.10及以上的最新Fix Pack,官方会在新版本中集成修复后的JVM组件。
关键错误日志
j9mm.141 - * ** ASSERTION FAILED ** AT LargeObjectAllocateStats.cpp:1126: ((false))** GC History : j9mm.621 - GC Assertion message: Calculated value of getSizeClassIndex() 133 can not be larger then maximum 122 j9mm.465 - CopyForward start min heap size : 2GB max heap size : 4GB used heap size : 2GB at the time of GC GC policy : balanced
内容的提问来源于stack exchange,提问作者Vinoth
相关产品推荐
相关产品推荐

