是什么在java.lang.OutOfMemory的区别:GC开销超过限制与java.lang.OutOfMemory:组播监听器 [英] What is the difference in java.lang.OutOfMemory: GC Overhead limit exceeded vs. java.lang.OutOfMemory: Multicast listener
问题描述
我调查我们的应用程序缓慢,并最终在集群环境下去实例之一。
:几个星期前,我碰到下面的错误来了<$p$p><$c$c>[#|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()进行的servlet的LoginModule抛出异常java.lang.OutOfMemoryError:GC开销超过限制
我想,既然GC开销限制被超过,它必须是与我的应用程序。有一份报告,是关于使用POI将记录在Excel中确实密集,所以我认为可能会导致它。作为一个短期的修正,直到下一个版本中,我们得知1用户谁曾访问该报告不能访问它。
然而,今天,两个星期后再次其中一个实例下去并在搜索日志中,我发现下面的错误:
<$p$p><$c$c>[#|2012-06-05T10:31:36.532-0400|SEVERE|sun-appserver2.1|net.jxta.impl.endpoint.mcast.McastTransport|_ThreadID=141;_ThreadName=IP组播侦听为MCAST://228.8.10.93:31676; _RequestID = 90caf76e-b740-4f11-8ffe-8ab88a740569; |未捕获的Throwable螺纹:IP组播监听器MCAST://228.8.10.93:31676java.lang.OutOfMemoryError:Java堆空间
|#]
请注意超过了 GC开销限制的区别
与 Java堆空间
。我试图找出是否我今天看到的错误是由同样的原因,用户访问报表造成的,但是,我相信,如果是这样的话那么我会看到 GC开销超过限制
。
相信今天误差更相关的服务器的配置。
请澄清帮忙。
第一个错误GC开销是指GC正在CPU周期的很大一部分,主要是这意味着98%或99%,而在每次运行它释放非常少的内存1-2%。
第二个错误是指你的应用程序的一些处理过程中走出了记忆。
此外,您的调查占用过多的内存正确的POI,POI有多余的内存消耗的历史。
穿过<少时href=\"http://stackoverflow.com/questions/1393486/what-does-the-error-message-java-lang-outofmemoryerror-gc-overhead-limit-excee\">very在SO 商量好了
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
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
|#]
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.
please help in clarifying.
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.
Also your investigation is correct of POI using up too much of memory, POI has a history of extra memory consumption.
Came across a very good discussion on SO
这篇关于是什么在java.lang.OutOfMemory的区别:GC开销超过限制与java.lang.OutOfMemory:组播监听器的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!