java.lang.OutOfMemory: GC Overhead limit exceeded vs. java.lang.OutOfMemory: Multicast listener有什么区别 [英] What is the difference in java.lang.OutOfMemory: GC Overhead limit exceeded vs. java.lang.OutOfMemory: Multicast listener

查看:22
本文介绍了java.lang.OutOfMemory: GC Overhead limit exceeded vs. java.lang.OutOfMemory: Multicast listener有什么区别的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在调查我们的应用程序中的缓慢情况,并最终导致集群环境中的一个实例出现故障.几周前,我遇到了以下错误:

I am investigating the slowness in our application and eventually one of the instances in a cluster environment going down. Few weeks back I came across the error below:

[#|2012-05-11T14:12:03.460-0400|SEVERE|sun-appserver2.1|javax.enterprise.system.container.web|_ThreadID=89;_ThreadName=httpSSLWorkerThread-7311-0;_RequestID=7afaee11-c970-40dd-b5fb-29498af8e512;|StandardWrapperValve[LoginModule]: PWC1406: Servlet.service() for servlet LoginModule threw exception
java.lang.OutOfMemoryError: GC overhead limit exceeded

我认为由于超出了 GC 开销限制,这与我的应用程序有关.有一份报告非常注重使用 POI 将记录放入 excel,所以我认为这可能是导致它的原因.作为短期修复,在下一个版本之前,我们通知 1 位有权访问此报告的用户不要访问它.

I figured that since GC overhead limit was exceeding, it had something to do with my application. There is a report that is really intensive on putting records in excel using POI, so I thought that might be causing it. As a short term fix, until next release, we informed 1 user who had access to this report to not access it.

然而,两周后的今天,其中一个实例再次出现故障,在搜索日志时我发现了以下错误:

However, today, two weeks later again one of the instances went down and upon searching the logs I found the error below:

[#|2012-06-05T10:31:36.532-0400|SEVERE|sun-appserver2.1|net.jxta.impl.endpoint.mcast.McastTransport|_ThreadID=141;_ThreadName=IP Multicast Listener for mcast://228.8.10.93:31676;_RequestID=90caf76e-b740-4f11-8ffe-8ab88a740569;|Uncaught Throwable in thread :IP Multicast Listener for mcast://228.8.10.93:31676
java.lang.OutOfMemoryError: Java heap space
|#]

请注意GC开销限制超出Java堆空间的区别.我试图找出我今天看到的错误是否是由用户访问报告的相同原因引起的,但是,我相信如果是这种情况,那么我会看到 GC 开销限制超出.

Please note the difference in GC overhead limit exceeded vs. Java heap space. I am trying to find out whether the error I saw today is caused by the same reason of the user accessing the report, however, I believe if that were the case then I would see GC overhead limit exceeded.

我相信今天的错误更多与服务器的配置有关.

I believe the error today is more related to the configuration of the server.

请帮忙澄清一下.

推荐答案

第一个错误GC Overhead"表示 GC 占用了大部分 CPU 周期,主要是 98% 或 99% 并且在每次运行中它正在释放非常少的内存 1-2%.

The first error "GC Overhead" means that GC is taking large portion of CPU cycle, mostly it means 98% or 99% and in each run it is releasing very less memory 1-2%.

第二个错误意味着您的应用程序在某些处理过程中内存不足.

The second error means your application went out of memory during some processing.

此外,您对 POI 占用过多内存的调查是正确的,POI 有额外内存消耗的历史.

Also your investigation is correct of POI using up too much of memory, POI has a history of extra memory consumption.

遇到一个非常好关于 SO 的讨论

这篇关于java.lang.OutOfMemory: GC Overhead limit exceeded vs. java.lang.OutOfMemory: Multicast listener有什么区别的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆