我的开发机器上有8GB RAM,并试图运行Apache Tomcat(7.0.29)同时托管Artifactory(2.6.3)和Jenkins(1.479)。我试图找到Jenkins的内存需求,但看起来他们的Wiki断了。
在中${TOMCAT_HOME}/bin/catalina.sh,我添加了以下命令:
${TOMCAT_HOME}/bin/catalina.sh
CATALINA_OPTS="$CATALINA_OPTS -server -Xms1024m -Xmx3052m"
这应该将Tomcat的JVM的大小保持在(基本上)1到3 GB之间,为我留出足够的空间来容纳其他内容, 并 为Tomcat留出足够的内存来存放Artifactory / Jenkins以及我需要的其他内存。
(为此,我尝试了相同的操作,但JAVA_OPTS只获得了相同的准确结果)。我保存该更改并运行startup.sh。Tomcat开始启动,然后死于OOMEs,抱怨Tomcat已经用完了PermGen空间:
JAVA_OPTS
startup.sh
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
我要去哪里啊?我已经阅读了多篇有关如何执行此操作的文章,并且(相信!)我正在精确地关注它们。关于如何进一步调试的任何想法或想法?提前致谢!
尝试设置这个
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(如有必要,请创建)。
{$tomcat-folder}\bin\setenv.sh
有关更多详细信息,请参见 http://www.mkyong.com/tomcat/tomcat-javalangoutofmemoryerror- permgen-space/。