2009-06-16 15 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類加載器,並確保你的加載速度比應用程序級加載器所需的加載速度更快。

相關問題