上周,我们在生产环境中遇到了内存不足错误。内存不足错误可能每周发生一次,而当前的解决方法是重新启动应用程序服务器。我们正在使用glassfish 3.0.1。生成的堆转储约为5gb。
请帮助分析下面的堆转储。这是使用Eclipse MAT生成的泄漏可疑报告。我们如何分析以下报告?
One instance of
"com.sun.enterprise.v3.services.impl.monitor.stats.ConnectionQueueStatsProvider" loaded by
"org.apache.felix.framework.ModuleImpl$ModuleClassLoader @ 0x602650970" occupies
2,104,143,312 (87.97%) bytes. The instance is referenced by
org.glassfish.flashlight.impl.client.ReflectiveClientInvoker @ 0x600a63768 , loaded by
"org.apache.felix.framework.ModuleImpl$ModuleClassLoader @ 0x60265dd38". The memory is
accumulated in one instance of "java.util.concurrent.ConcurrentHashMap$Segment[]" loaded
by "<system class loader>".
Keywords
org.apache.felix.framework.ModuleImpl$ModuleClassLoader @ 0x602650970
org.apache.felix.framework.ModuleImpl$ModuleClassLoader @ 0x60265dd38
java.util.concurrent.ConcurrentHashMap$Segment[]
com.sun.enterprise.v3.services.impl.monitor.stats.ConnectionQueueStatsProvider
我们认为我们找到了答案。我们在glassfish jira中看到了类似的错误报告:https : //java.net/jira/browse/GLASSFISH-16254。Glassfish 3.0.1似乎是一个错误。
当glassfish监视线程池和http服务时,它们出现了内存不足错误,这是我们的确切设置。
我们关闭了玻璃鱼监控,现在我们可以稳定运行1周,而没有任何内存不足。
感谢大家的帮助!
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句