【发布时间】:2013-10-27 03:12:57
【问题描述】:
我的应用出现OutOfMemory异常。我已经进行了堆转储并通过 MAT 进行了分析。在分析我的应用程序内存使用情况时,我发现了以下嫌疑人。我无法理解这些嫌疑人背后的主要原因。
请帮助我了解此泄漏嫌疑人以及与之相关的解决方案。
嫌疑人 1
线程 org.apache.tomcat.util.threads.TaskThread @ 0x2bdf5ff8 "ajp-bio-9002"-exec-5 保存总大小为 113,973,288 (50.72%) 字节的局部变量。强>
内存在“org.apache.catalina.loader.StandardClassLoader @ 0x293b4488”加载的“org.apache.tomcat.util.threads.TaskThread”的一个实例中累积。
线程堆栈
“ajp-bio-9002”-exec-5 在 java.util.Arrays.copyOf([CI)[C (Arrays.java:2882) 在 java.lang.AbstractStringBuilder.expandCapacity(I)V (AbstractStringBuilder.java:100) 在 java.lang.AbstractStringBuilder.append(C)Ljava/lang/AbstractStringBuilder; (AbstractStringBuilder.java:572) 在 java.lang.StringBuffer.append(C)Ljava/lang/StringBuffer; (StringBuffer.java:320) 在 org.apache.myfaces.renderkit.html.util.ReducedHTMLParser.consumeString(C)Ljava/lang/String; (减少 HTMLParser.java:303) 在 org.apache.myfaces.renderkit.html.util.ReducedHTMLParser.consumeAttrValue()Ljava/lang/String; (减少 HTMLParser.java:327) 在 org.apache.myfaces.renderkit.html.util.ReducedHTMLParser.parse()V (ReducedHTMLParser.java:579) 在 org.apache.myfaces.renderkit.html.util.ReducedHTMLParser.parse(Ljava/lang/CharSequence;Lorg/apache/myfaces/renderkit/html/util/CallbackListener;)V (ReducedHTMLParser.java:66) 在 org.apache.myfaces.renderkit.html.util.DefaultAddResource.parseResponse(Ljavax/servlet/http/HttpServletRequest;Ljava/lang/String;Ljavax/servlet/http/HttpServletResponse;)V (DefaultAddResource.java:699) 在 org.apache.myfaces.webapp.filter.ExtensionsFilter.doFilter(Ljavax/servlet/ServletRequest;Ljavax/servlet/ServletResponse;Ljavax/servlet/FilterChain;)V (ExtensionsFilter.java:157) 在 org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Ljavax/servlet/ServletRequest;Ljavax/servlet/ServletResponse;)V (ApplicationFilterChain.java:243) 在 org.apache.catalina.core.ApplicationFilterChain.doFilter(Ljavax/servlet/ServletRequest;Ljavax/servlet/ServletResponse;)V (ApplicationFilterChain.java:210) 在 org.apache.catalina.core.StandardWrapperValve.invoke(Lorg/apache/catalina/connector/Request;Lorg/apache/catalina/connector/Response;)V (StandardWrapperValve.java:240) 在 org.apache.catalina.core.StandardContextValve.invoke(Lorg/apache/catalina/connector/Request;Lorg/apache/catalina/connector/Response;)V (StandardContextValve.java:164) 在 org.apache.catalina.authenticator.AuthenticatorBase.invoke(Lorg/apache/catalina/connector/Request;Lorg/apache/catalina/connector/Response;)V (AuthenticatorBase.java:462) 在 org.apache.catalina.core.StandardHostValve.invoke(Lorg/apache/catalina/connector/Request;Lorg/apache/catalina/connector/Response;)V (StandardHostValve.java:164) 在 org.apache.catalina.valves.ErrorReportValve.invoke(Lorg/apache/catalina/connector/Request;Lorg/apache/catalina/connector/Response;)V (ErrorReportValve.java:100) 在 org.apache.catalina.valves.AccessLogValve.invoke(Lorg/apache/catalina/connector/Request;Lorg/apache/catalina/connector/Response;)V (AccessLogValve.java:562) 在 org.apache.catalina.core.StandardEngineValve.invoke(Lorg/apache/catalina/connector/Request;Lorg/apache/catalina/connector/Response;)V (StandardEngineValve.java:118) 在 org.apache.catalina.ha.session.JvmRouteBinderValve.invoke(Lorg/apache/catalina/connector/Request;Lorg/apache/catalina/connector/Response;)V (JvmRouteBinderValve.java:218) 在 org.apache.catalina.ha.tcp.ReplicationValve.invoke(Lorg/apache/catalina/connector/Request;Lorg/apache/catalina/connector/Response;)V (ReplicationValve.java:333) 在 org.apache.catalina.connector.CoyoteAdapter.service(Lorg/apache/coyote/Request;Lorg/apache/coyote/Response;)V (CoyoteAdapter.java:395) 在 org.apache.coyote.ajp.AjpProcessor.process(Lorg/apache/tomcat/util/net/SocketWrapper;)Lorg/apache/tomcat/util/net/AbstractEndpoint$Handler$SocketState; (AjpProcessor.java:301) 在 org.apache.coyote.ajp.AjpProtocol$AjpConnectionHandler.process(Lorg/apache/tomcat/util/net/SocketWrapper;Lorg/apache/tomcat/util/net/SocketStatus;)Lorg/apache/tomcat/util/net/ AbstractEndpoint$Handler$SocketState; (AjpProtocol.java:183) 在 org.apache.coyote.ajp.AjpProtocol$AjpConnectionHandler.process(Lorg/apache/tomcat/util/net/SocketWrapper;)Lorg/apache/tomcat/util/net/AbstractEndpoint$Handler$SocketState; (AjpProtocol.java:169) 在 org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run()V (JIoEndpoint.java:302) 在 java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Ljava/lang/Runnable;)V (ThreadPoolExecutor.java:886) 在 java.util.concurrent.ThreadPoolExecutor$Worker.run()V (ThreadPoolExecutor.java:908) 在 java.lang.Thread.run()V (Thread.java:662)
嫌疑人 2
“”加载的一个“java.lang.StringBuffer”实例占用59,216,088(26.35%)字节。该实例由 org.apache.myfaces.renderkit.html.util.ReducedHTMLParser @ 0x276990e8 引用,由“org.apache.catalina.loader.WebappClassLoader @ 0x29592038”加载。内存在“”加载的“char[]”的一个实例中累积。
【问题讨论】:
-
这个问题可能更适合serverfault.com
-
你找到答案了吗?我有点在看同样的东西,找不到“内存泄漏”。提前致谢
标签: java memory-management memory-leaks tomcat6 out-of-memory