增加Tomcat内存设置

时间:2012-10-02 10:38:21

标签: tomcat memory

  

可能重复:
  Dealing with “java.lang.OutOfMemoryError: PermGen space” error

我的开发机器中有8GB RAM,我正在尝试运行Apache Tomcat(7.0.29)来同时托管Artifactory(2.6.3)和Jenkins(1.479) 。我试图找到Jenkins的内存要求,但看起来他们的wiki已经关闭了。

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

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

这应该使Tomcat的JVM在(基本上)1到3 GB之间保持不变,为其他东西留下足够的空间,为Tomifact提供足够的内存用于Artifactory / Jenkins,以及如果我愿意,甚至是其他人。

(为什么它值得我和JAVA_OPTS尝试相同只是为了获得相同的结果)。我保存了该更改并运行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

我在哪里出错?我已经阅读了多篇关于如何做到这一点的文章,并且(相信!)我正在准确地关注它们。有关如何进一步调试的任何想法或想法?提前谢谢!

1 个答案:

答案 0 :(得分:126)

尝试设置此

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中的

(必要时创建)。

请参阅 http://www.mkyong.com/tomcat/tomcat-javalangoutofmemoryerror-permgen-space/了解更多详情。