增加Tomcat内存设置

增加Tomcat内存设置,tomcat,memory,Tomcat,Memory,可能重复: 我的开发机器中有8GB的RAM,我正试图运行ApacheTomcat(7.0.29)来同时托管(2.6.3)和(1.479)。我试图找到詹金斯的内存需求,但看起来他们的维基已经关闭了 在${TOMCAT_HOME}/bin/catalina.sh中,我添加了以下命令: CATALINA_OPTS="$CATALINA_OPTS -server -Xms1024m -Xmx3052m" 这将使Tomcat的JVM保持在(基本上)1到3 GB的大小,为其他东西留出足够的空间,和为To

可能重复:

我的开发机器中有8GB的RAM,我正试图运行ApacheTomcat(7.0.29)来同时托管(2.6.3)和(1.479)。我试图找到詹金斯的内存需求,但看起来他们的维基已经关闭了

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

CATALINA_OPTS="$CATALINA_OPTS -server -Xms1024m -Xmx3052m"
这将使Tomcat的JVM保持在(基本上)1到3 GB的大小,为其他东西留出足够的空间,为Tomcat提供足够的内存,以便Artifactory/Jenkins甚至其他人使用

(值得一提的是,我用
JAVA\u OPTS
尝试了同样的方法,但只得到了相同的精确结果)。我保存更改并运行
startup.sh
。Tomcat开始启动,然后死亡,OOMEs抱怨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
线程“SocketListener(.local.)中出现异常 java.lang.OutOfMemoryError:PermGen空间 java.lang.OutOfMemoryError:PermGen空间 java.lang.OutOfMemoryError:PermGen空间 线程“hudson initialization thread”java.lang.OutOfMemoryError中出现异常:PermGen空间 java.lang.OutOfMemoryError:PermGen空间 我要在这里走错哪里?我已经阅读了多篇关于如何做到这一点的文章,并且(相信!)我正在精确地跟踪它们。关于如何进一步调试这个问题,有什么想法吗?提前谢谢

尝试设置此选项

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
中(必要时创建它)


更多细节

你试过增加永久性的空间吗?e、 g.
-XX:MaxPermSize=128m
Hi@Augusto-请看我在sgpalit回答下面的评论-我有同样的问题要问你!再次感谢!大家好,请不要只回答链接问题,尽量多回答主要问题谢谢@sgpalit(+1)-我很快会在这里尝试一下。好奇的是,如果我希望我的Java堆大小为~3GB,我的PermGen应该有多大?在我的例子中,我没有修改sh文件。我有点泄气,因为服务器上有yum repo,Tomcat是从那里安装的。我刚刚修改了
/usr/share/tomcat7/conf/tomcat7.conf
,并添加了上述选项。Tomcat附带的RUNNING.txt声明:“注意:不要使用JAVA_选项指定内存限制。用于停止Tomcat的小进程不需要太多内存。这些设置属于CATALINA_选项。”由于这似乎是一个通俗易懂的答案,您可以补充一点。@MartinSpamer-
-Xms
与堆栈大小无关。请参见
java-X
,了解这些设置的实际功能。使用
-Xms1536m
是完全合理的,如果您知道进程最终将使用其所有或几乎所有堆,那么将
-Xms
设置为与
-Xmx
相同,会使进程更高效。