2009-06-16 13 views
0

我是一名开发人员,他在Apache Tomcat 6.x,Alfresco Labs 3(独立的.war文件)和一对自定义webapps的CentOS 5盒子上运行一个网站。为什么我的Tomcat/Alfresco网站每半天左右都无响应?

过去几个月服务器已经正常运行,但前几天有人通过Alfresco上传图片,网站停止响应。除此之外,所有通过Tomcat运行的web应用程序也都没有响应。我尝试在本地telnet(即telnet localhost 80),但它没有连接超时。

展望在最近的日志文件(本地主机...日志)我看到了开始java.lang.OutOfMemoryError堆栈跟踪:PermGen space的失败经过一番google搜索从128MB增加到最大烫发大小384MB。我们认为,这将解决这一问题,但今天它已经回来,Tomcat是下来了(只是没有在日志中的PermGen堆栈跟踪)

是不断弹出其他堆栈跟踪如下:

Jun 16, 2009 3:38:26 PM org.apache.catalina.core.StandardWrapperValve invoke 
SEVERE: Servlet.service() for servlet default threw exception 
java.lang.IllegalStateException 
    at org.apache.catalina.connector.ResponseFacade.sendError(ResponseFacade.java:407) 
    at org.apache.struts2.dispatcher.Dispatcher.sendError(Dispatcher.java:707) 
    at org.apache.struts2.dispatcher.Dispatcher.serviceAction(Dispatcher.java:485) 
    at org.apache.struts2.dispatcher.FilterDispatcher.doFilter(FilterDispatcher.java:395) 
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235) 
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) 
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233) 
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191) 
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128) 
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102) 
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109) 
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:286) 
    at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:845) 
    at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583) 
    at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447) 
    at java.lang.Thread.run(Thread.java:619) 

我不知道这是否相关,因为它似乎没有真正使Tomcat崩溃,但它似乎经常弹出。另外一个原因,我认为这不是什么大问题,在过去的一个月左右,我们的日志已经显示出来。

除此之外,我不完全知道该怎么做。没有任何其他线索我知道要检查。我猜这是一个Alfresco问题,但我不能肯定地说。我今天做的唯一改变配置的东西是将扩展容量增加到512MB,但这可能没有帮助,因为我们这次没有实际得到PermGen错误。

任何想法?

+0

看来你在这里有两个不同的问题。你已经修复了一个,发现了另一个。不幸的是,我不知道如何诊断这个来自Tomcat内部的IllegalStateException。 尝试下载Tomcat源代码并查看该行发生了什么。 – skaffman 2009-06-16 21:59:41

+0

这并不是真的与编程相关,但错误源于应用过滤器。你可能想从那里开始。 – cletus 2009-06-16 22:15:07

回答

1

高达256到512 MB这里稳定reoccuring tomcat的PermGen的不稳定性。双RAM保证临时性的改进,很可能从修复到发展。否则失去时间分析,得知为什么,并且无论如何稍后加倍RAM。

1

你也应该寻找内存泄漏 - 你是否正在加载可以从共享库加载的战争类?另外 - 某些日志记录类可以导致tomcat保存已加载的类(这是填充permgen空间的内容)。看看tomcat类加载器,并确保你的加载速度比应用程序级加载器所需的加载速度更快。

相关问题