Tomcat 6 堆大小 - 这是正确的吗?
Posted
技术标签:
【中文标题】Tomcat 6 堆大小 - 这是正确的吗?【英文标题】:Tomcat 6 Heap Size - Is this correct? 【发布时间】:2011-01-09 18:49:57 【问题描述】:我在 Red Hat 机器上运行多个 tomcat,我想为每个配置单独的堆大小(某些实例使用更多内存)。
我可以在 catalina.sh 文件中输入以下内容来设置堆大小 min/max bt:
CATALINA_OPTS="-Xms64m -Xmx256m"
我需要添加“导出”吗?即导出 CATALINA_OPTS="-Xms64m -Xmx256m"
【问题讨论】:
【参考方案1】:最佳做法是将环境变量的设置放在 bin 文件夹中名为 setenv.sh
/.bat
的文件中。
catalina.sh
脚本具有调用该脚本的逻辑(如果存在)。
推荐这样做的原因是因为它使您的安装所需的环境变量设置可移植:您可以轻松地将setenv.sh
复制到其他Tomcat安装,您可以将Tomcat升级到更新版本(可能会覆盖catalina.sh
) 但仍有现有的setenv.sh
。
关于如何在setenv.sh
中设置堆大小的示例:
export JAVA_OPTS='-Xmx784M`
【讨论】:
请注意,CATALINA_OPTS
比 JAVA_OPTS
更好。前者仅在实际启动 Tomcat 实例时使用。 JAVA_OPTS
还用于启动仅与 Tomcat 交互的 JVM(例如,用于将关闭消息发送到正在运行的 Tomcat 实例的 JVM 实例)。那些 JVM 通常不需要那么多内存。
哇,Joachim 非常棒 - 谢谢。我现在必须去更新我们所有的脚本 :)
@mattb 你介意更新你的答案以适应 Joachim Sauer 的评论吗?【参考方案2】:
如果您将它添加到 Tomcat 安装中的任何内容,它将影响该机器上运行的所有实例。
我认为您想在单独的脚本中单独设置 JAVA_OPTS,然后每个脚本都会调用 Tomcat 的启动脚本。脚本可以设置不同的堆大小。是的,您需要导出。
【讨论】:
以上是关于Tomcat 6 堆大小 - 这是正确的吗?的主要内容,如果未能解决你的问题,请参考以下文章
Tomcat 7 - 无法使 CATALINA_OPTS 堆大小正常工作