在wildfly 8.2.0 Final中完全频繁的垃圾收集

时间:2015-05-04 17:48:17

标签: jboss garbage-collection wildfly wildfly-8

我们从Jboss AS 7.1.1转移到了wildfly 8.2.0 Final。升级后,我们在运行60次用户负载测试时看到完全频繁的垃圾回收。完整的gc无法恢复任何内存。在分析中,我们发现org.apache.jasper.runtime.BodyContentImpl具有1 gb的保留堆。我们在PerThreadTagHandlerPool.java中找到了根本原因。修补TagHandelrPool diff --git a / src / main / java / org / apache / jasper / runtime / TagHandlerPool.java b / src / main / java / org / apache / jasper / runtime / TagHandlerPool.java index eaa8560..c6c785f 100644

--- a/src/main/java/org/apache/jasper/runtime/TagHandlerPool.java
+++ b/src/main/java/org/apache/jasper/runtime/TagHandlerPool.java
@@ -53,7 +53,7 @@ public class TagHandlerPool {
                 result = null;
             }
         }
-        if( result==null ) result=new PerThreadTagHandlerPool();
+        if( result==null ) result=new TagHandlerPool();
         result.init(config);

         return result;

这个固定的内存泄漏问题,但是我们在运行负载测试时每隔2分钟就会看到完全频繁的gc。 Full gc能够恢复内存。在分析堆转储时,发现大部分堆区域是Eclipse MAT中的余数(350 MB),io.undertow.server.session.InMemorySessionManager占用大约17 MB,而org.hibernate.internal.SessionFactoryImpl占用大约17.5MB

尝试了多个选项 1. Ourmax堆积为1536米,减少到1024米,增加到2048米和4096米。没有好处 2.将XX:NewRatio更改为3,但没有帮助。

感谢您的投入。

0 个答案:

没有答案