Tomcat 7:如何正确设置初始堆大小?

我试图通过在catalina.sh中添加以下行来调整tomcat 7(CentOS,java -version:1.6.0_25-b06)实例的初始堆大小:

export CATALINA_OPTS="-Xms=512M -Xmx=1024M" 

启动tomcat失败并将以下消息logging到catalina.out:

 Invalid initial heap size: -Xms=512m Could not create the Java virtual machine. 

这些选项有什么问题?

你不能使用= 。 简单地使用这个:

 export CATALINA_OPTS="-Xms512M -Xmx1024M" 

使用以下命令正确地为tomcat7(linux发行版)增加java堆大小:

 echo 'export CATALINA_OPTS="-Xms512M -Xmx1024M"' > /usr/share/tomcat7/bin/setenv.sh 

您可能不需要导出 ,只需在catalina.sh中添加以下行:

 CATALINA_OPTS="-Xms512M -Xmx1024M" 

setenv.sh更好,因为您可以轻松地将这种configuration从一台机器移植到另一台机器,或从一个Tomcat版本移植到另一台。 catalina.sh从一个Tomcat版本改变到另一个版本。 但是你可以使用任何版本的Tomcat保持你的setenv.sh不变。

另一个优点是,如果将其添加到备份或版本控制系统中,则更容易跟踪更改的历史logging。 如果你看看你setenv.sh沿着历史的变化,你会看到只有你自己的变化。 而如果您使用catalina.sh,则不仅会看到您的更改,还会看到每个较新版本的Tomcat所带来的更改。

注意Debian发行版的变化! 我试图改变我的Debian 7中的CATALINA_OPTS ,以及那个tomcat没有启动的结果。 因此我通过改变属性JAVA_OPTS来代替CATALINA_OPTS来解决这个问题,就像这样

 export JAVA_OPTS="-Xms512M -Xmx1024M" 

刚刚遇到这个,我已经实施了Nathan的解决scheme:

添加行(根据需要更改值):

 export JAVA_OPTS="-Xms512M -Xmx1024M" 

到/usr/share/tomcat7/bin/setenv.sh

如果该文件不存在,然后创build它

 chown root:root it chmod 755 it 

然后重新启动tomcat并检查它

 ps aux | grep logging 

哪个应该拿起实例并显示java parms

它甚至不使用“导出”关键字。 这是我在我的setenv.sh(/usr/share/tomcat7/bin/setenv.sh),它的工作原理。

OS:14.04.1-Ubuntu服务器版本:Apache Tomcat / 7.0.52(Ubuntu)服务器内置:Jun 30 2016 01:59:37服务器编号:7.0.52.0

 JAVA_OPTS="-Dorg.apache.catalina.security.SecurityListener.UMASK=`umask` -server -Xms6G -Xmx6G -Xmn1400m -XX:HeapDumpPath=/Some/logs/ -XX:+HeapDumpOnOutOfMemoryError -XX:+UseConcMarkSweepGC -XX:+UseParNewGC -XX:SurvivorRatio=8 -XX:+UseCompressedOops -Dcom.sun.management.jmxremote.port=8181 -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false" JAVA_OPTS="$JAVA_OPTS -Dserver.name=$HOSTNAME" 

花了好多时间在这之后。 我发现这是setenv.bat必须的样子。 没有“字符被接受在batch file中。

设置CATALINA_OPTS = -Xms512m -Xmx1024m -XX:PermSize = 128m -XX:MaxPermSize = 768m

回声你好“%CATALINA_OPTS%”

转到“Tomcat目录”/ bin目录

如果Linux然后创buildsetenv.sh否则如果Windows然后创buildsetenv.bat

setenv。*文件的内容:

 export CATALINA_OPTS="$CATALINA_OPTS -Xms512m" export CATALINA_OPTS="$CATALINA_OPTS -Xmx8192m" export CATALINA_OPTS="$CATALINA_OPTS -XX:MaxPermSize=256m" 

之后,用新的参数重新启动tomcat。

解释和完整的信息在这里

http://crunchify.com/how-to-change-jvm-heap-setting-xms-xmx-of-tomcat/