增加Tomcat的内存设置

可能重复:
处理“java.lang.OutOfMemoryError:PermGen空间”错误

我在我的开发机器上有8GB内存,并且试图运行Apache Tomcat(7.0.29)同时托pipeArtifactory (2.6.3)和Jenkins (1.479)。 我试图findjenkins的内存要求,但看起来他们的维基已经closures。

${TOMCAT_HOME}/bin/catalina.sh ,我添加了以下命令:

 CATALINA_OPTS="$CATALINA_OPTS -server -Xms1024m -Xmx3052m" 

这应该使Tomcat的JVM保持在(基本上)1到3 GB之间,为我们留下了足够的空间来存放其他东西,给Tomcat足够的内存给Artifactory / Jenkins,甚至还有其他的需要。

(为了得到相同的结果,我已经尝试了与JAVA_OPTS相同的function)。 我保存该更改并运行startup.sh 。 Tomcat开始启动,然后与OOME一起抱怨Tomcat已经用完了PermGen空间:

 Exception in thread "SocketListener(<hex-stuff>.local.)" java.lang.OutOfMemoryError: PermGen space java.lang.OutOfMemoryError: PermGen space java.lang.OutOfMemoryError: PermGen space Exception in thread "hudson initialization thread" java.lang.OutOfMemoryError: PermGen space java.lang.OutOfMemoryError: PermGen space 

我要去哪里呢? 我已经阅读了多篇关于如何做到这一点的文章(相信!),我正在关注它们。 任何想法,或想法如何我可以进一步debugging呢? 提前致谢!

尝试设置这个

 CATALINA_OPTS="-Djava.awt.headless=true -Dfile.encoding=UTF-8 -server -Xms1536m -Xmx1536m -XX:NewSize=256m -XX:MaxNewSize=256m -XX:PermSize=256m -XX:MaxPermSize=256m -XX:+DisableExplicitGC" 

{$tomcat-folder}\bin\setenv.sh (必要时创build它)。

有关更多详细信息,请参见http://www.mkyong.com/tomcat/tomcat-javalangoutofmemoryerror-permgen-space/