Chr*_*ris 36 ubuntu tomcat java
我正在使用 Ubuntu 9.04 中的 tomcat6 包运行 Tomcat,它使用 jsvc 从 Tomcat 中创建了一个守护进程。我想知道-Xmx为 Tomcat设置 Java 堆选项的正确方法。我想把配置放在风格最正确的地方,以及最不可能被 Ubuntu 包更新覆盖的地方。
我现在看到的选项:
/etc/init.d/tomcat6./usr/share/tomcat6/bin/catalina.sh./usr/share/tomcat6/bin/startup.sh以将 CATALINA_OPTS 设置为具有所需的标志,然后将 CATALINA_OPTS 作为环境变量导出。(这看起来会被 接收catalina.sh。)最后一个选项听起来是最好的,它在增加 Java 的堆空间在 Tomcat 启动脚本中被提倡(没有解释原因)。但我想得到第二意见。有人想确认没有更好的方法吗?
nat*_*ado 37
至少在 Ubuntu 10.04 上,/etc/init.d/tomcat6 源 /etc/default/tomcat6 如果存在。这就是我放置覆盖的地方,我相信这通常是进行此类更改的“批准”方式。
小智 16
如果您查看安装的 bin 目录,您将看到 catalina.sh 或 .bat 脚本。如果您查看这些,您将看到它们分别运行 setenv.sh 或 setenv.bat 脚本(如果存在)来设置环境变量。catalina.sh/bat 顶部的注释中描述了相关的环境变量。例如,要使用它们创建一个包含内容的文件 $CATALINA_HOME/bin/setenv.sh
export JAVA_OPTS="-server -Xmx512m"
Run Code Online (Sandbox Code Playgroud)
对于 Windows,您将需要在 setenv.bat 中,类似于
set JAVA_OPTS=-server -Xmx768m
Run Code Online (Sandbox Code Playgroud)
从 tomcat 5.5 到 7 都是如此。原始回答/sf/ask/20020521/
查找/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"
Run Code Online (Sandbox Code Playgroud)
到目前为止,我发现的最优雅的方法是编辑 /etc/init.d/tomcat6 并将其添加到文件顶部:
# local config settings
JAVA_OPTS="-Xms5000m -Xmx13000m
Run Code Online (Sandbox Code Playgroud)
我在问题中概述的其他选项似乎不起作用。在研究了该脚本并进行了更多实验之后,我现在怀疑 /usr/share/tomcat6/bin/catalina.sh 和 /usr/share/tomcat6/bin/startup.sh 在使用 tomcat6 Ubuntu 软件包启动 tomcat 中发挥任何作用。反而; /etc/init.d/tomcat6 完全取代了通常由 catalina.sh/startup.sh 完成的任何工作。
我仍然有点担心在未来的软件包更新中丢失这些配置选项,但我想如果发生这种情况,恢复它们会很容易。
| 归档时间: |
|
| 查看次数: |
142360 次 |
| 最近记录: |