问题描述
我正在使用来自Ubuntu 9.04的tomcat6软件包运行Tomcat,该软件包使用jsvc从Tomcat中生成了一个守护进程。我想知道为Tomcat设置Java堆选项(如-Xmx
)的正确方法。我想将配置放在样式上最正确的地方,以及最不可能被Ubuntu软件包更新覆盖的地方。
我现在看到的选项:
-
Hard-code它们在
/etc/init.d/tomcat6
中的某个位置。 -
Hard-code它们在
/usr/share/tomcat6/bin/catalina.sh
中的某个位置。 -
在
/usr/share/tomcat6/bin/startup.sh
中创建一行以将CATALINA_OPTS设置为具有所需的标志,然后将CATALINA_OPTS导出为环境变量。 (看起来它将由catalina.sh
拾取。)
最后一个选项听起来像是最好的,它是Increasing Java’s heapspace in Tomcat startup script提倡的(没有解释原因)。但是我想征求第二意见。任何人都想确认没有更好的方法吗?
最佳答案
至少在Ubuntu 10.04上,/etc /init.d /tomcat6源/etc /default /tomcat6(如果存在)。这就是我放置替代项的地方,我相信通常是进行此类更改的”approved”方法。
次佳答案
如果您在安装的bin目录中查找,将看到catalina.sh或.bat脚本。如果查看这些脚本,则会看到它们分别运行setenv.sh或setenv.bat脚本(如果存在)来设置环境变量。相关环境变量在catalina.sh/bat顶部的注释中进行了描述。要使用它们,例如,创建一个带有内容的文件$ CATALINA_HOME /bin /setenv.sh
export JAVA_OPTS="-server -Xmx512m"
对于Windows,您需要在setenv.bat中输入以下内容
set JAVA_OPTS=-server -Xmx768m
从tomcat 5.5到7,这都是正确的。原始answear https://stackoverflow.com/questions/286007/how-to-tune-tomcat-5-5-jvm-memory-settings-without-using-the-configuration-progra
第三种答案
寻找/etc/tomcat6/tomcat6.conf,它已经准备好了JAVA_OPTS之类,并等待您取消注释(但前提是您完全没有问题,我使用的是Centos,而不是Ubuntu)。
# System-wide configuration file for tomcat6 services
# This will be sourced by tomcat6 and any secondary service
# Values will be overridden by service-specific configuration
# files in /etc/sysconfig
#
# Use this one to change default values for all services
# Change the service specific ones to affect only one service
# (see, for instance, /etc/sysconfig/tomcat6)
#
...
#JAVA_OPTS="-Xminf0.1 -Xmaxf0.3"