2010-06-01 57 views
2

你知道如何讓它更穩定,也許屬性設置,內存分配?當重新部署網絡應用程序時,Tomcat 6真的不穩定

當重新部署Web應用程序時,通過管理器(戰爭),Web界面或Maven插件時,它總是會掛起。

它給PermGenSpace,無記憶錯誤等在我的本地機器3GB內存

每一秒的時間。

它看起來應該手動設置以穩定的方式工作。

如何解決這樣的問題?

+0

更多的往往不是那樣的問題在於在Web應用程序中。意外地創建一個*無法*完全卸載的Web應用程序是相當容易的。 – 2010-06-01 11:34:36

+0

@Joachim Sauer好吧,它也會在部署時掛起。 – EugeneP 2010-06-02 07:33:41

+0

我從來沒有見過Tomcat這樣做,除非它沒有正確配置或Web應用程序本身在啓動過程中掛起。你用'jstack'來檢查它掛在哪一點? – 2010-06-02 10:25:33

回答

4

您需要增加PermGenSpace,默認情況下可能太小,無法滿足您的需求。啓動Tomcat的通過給這種開關到JVM:

-XX:MaxPermSize=256m 

此外,您可能要增加最大堆大小與這種開關:

-Xmx1g 

您將需要測試設置的很少看到哪些確切的值適合您。

這些設置可以投入tomcat/bin/setenv.sh文件,例如:發生

CATALINA_OPTS="-Xmx1g -XX:MaxPermSize=256m" 
+0

mi您將這些設置放入哪個文件? – EugeneP 2010-06-01 08:31:37

+0

將它們放入您的setenv.sh文件中,並在其中設置環境變量CATALINA_OPTS。 (也是這個信息編輯的原始答案。) – Tommi 2010-06-01 08:38:14

6

PermGenSpace錯誤的原因是在取消部署期間內存泄漏/部署週期。

取消部署應用程序在理論上應不會導致任何內存泄漏,但它是一個已知的問題,在不同的類加載器的對象之間存在着微妙的依賴性會在應用程序導致內存泄漏。服務器。

一個短期的補救辦法是在某種程度上配置JVM內存(-Xms-Xms等),它並沒有經過2-3重新部署,但許多經過打擊,因此,你需要重新啓動Tomcat不太經常。

長期補救辦法是分析是什麼導致內存泄漏。這通常不是Tomcat的問題,既不是垃圾收集,也不是應用程序代碼,而是在不同的類加載器中部署各種庫。一篇好文章來理解這個問題是:

這裏是一個SO問題,我建議你看一下,那裏的OP也有類似的問題:

相關問題