簡體   English   中英

在Tomcat上使用Jenkins重新部署Grails應用程序會填充PermGen空間

[英]Redeploying a Grails App using Jenkins on Tomcat fills PermGen Space

當前,在Tomcat 6上部署Grails應用程序時遇到各種問題,主要是關於內存使用問題和通過Jenkins進行重新部署。

該應用程序消耗越來越多的內存,並且我們嘗試使用CMSPermGenSweepingEnabled(我們正在使用UseConcMarkSweepGC)來解決此問題,因此現在應該清除Groovy使用的臨時類。

仍然存在的問題是,在每個重新部署(使用jenkins)的應用程序中,該應用程序需要大約150 mb的額外Permgen空間……您知道如何避免這種情況嗎?

我們正在使用Grail 1.3.7,我們當前的配置標志是

-Djava.util.logging.config.file=/var/lib/tomcat6/conf/logging.properties
-Djava.awt.headless=true
-Xms2048M
-Xmx2048M
-XX:MaxPermSize=1024m
-XX:PermSize=1024m
-XX:+CMSClassUnloadingEnabled
-XX:+CMSPermGenSweepingEnabled
-XX:+UseConcMarkSweepGC
-Djava.net.preferIPv4Stack=true
-Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager
-Djava.endorsed.dirs=/usr/share/tomcat6/endorsed
-Dcatalina.base=/var/lib/tomcat6
-Dcatalina.home=/usr/share/tomcat6
-Djava.io.tmpdir=/tmp/tomcat6-tmp

這是非常受歡迎的tomcat問題 ,他們甚至提出了一些建議: http : //wiki.apache.org/tomcat/OutOfMemory ,但是在大多數情況下,它僅適用於小型或完全受控的項目(意味着“沒有任何外部庫的項目”)。 我見過的所有可靠項目都在tomcat下失敗,出現此錯誤:(

我的建議-部署后重新啟動Tomcat實例。

我們在Tomcat上的Grails應用程序遇到了類似的問題。 我們的解決方案與Igor建議的解決方案相同,請在部署后重新啟動Tomcat。

我們在群集中設置了兩個生產服務器,因此它們共享會話。 我們關閉一台服務器,取消部署應用程序,重新啟動tomcat,部署新版本的應用程序,然后重新啟動該服務器。 然后在另一台服務器上重復該過程。 到目前為止,這對我們有用。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM