首页 > 代码库 > 排查java.lang.OutOfMemoryError: GC overhead limit exceeded

排查java.lang.OutOfMemoryError: GC overhead limit exceeded

帮助客户排查java.lang.OutOfMemoryError: GC overhead limit exceeded错误记录:

 

具体网址:

https://support.oracle.com/epmos/faces/DocumentDisplay?_afrLoop=269134815562958&id=1554559.1&displayIndex=2&_afrWindowMode=0&_adf.ctrl-state=2t8bqbn6s_165

 

文档id: 1554559.1

 

描述:

在包含所有修正包的 Sun JDK 1.6 中运行WebLogic 10.3 及更高版本中时,报告“java.lang.OutOfMemoryError: GC overhead limit exceeded”异常

 

“java.lang.OutOfMemoryError: GC overhead limit exceeded”消息表示,垃圾回收器由于某种原因花费了过多的时间。如果在垃圾回收上花费了过长时间,则并行回收器会抛出 OutOfMemoryError:如果在垃圾回收上花费了总时间的 98% 以上,或通过垃圾回收所恢复的堆少于 2%,则会抛出 OutOfMemoryError。

 

抛出“GC overhead limit exceeded”消息这一功能旨在防止因堆太小而导致应用程序长时间无法正常工作。

 

解决办法:

通过将以下参数添加到 JVM 的启动脚本来禁用 Sun JDK 1.6 中的 GC 开销限制功能,您可以避免上述“java.lang.OutOfMemoryError: GC overhead limit exceeded”异常:

 

-XX:-UseGCOverheadLimit

 

排查java.lang.OutOfMemoryError: GC overhead limit exceeded