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

Posted ericnie的技术博客

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了排查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的主要内容,如果未能解决你的问题,请参考以下文章

恶意代码上机排查思路与方法

故障排查

Windows系统入侵排查与应急响应技术

cpu飙升怎么排查

WEB系统问题排查

Redis 故障排查「连接失败问题排查和解决」带你总体分析CPU及内存的使用率高问题排查指南及方案