目前,我们在 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