我需要将 Tomcat 内存设置配置为大型安装的一部分,因此事后使用配置应用程序手动配置 Tomcat 是不可能的。我以为我可以将 JVM 内存设置放入 JAVA_OPTS 环境变量中,但我正在使用 jconsole 对其进行测试,以查看它是否有效,但它……没有。
根据下面的评论, CATALINA_OPTS 也不起作用。到目前为止,我可以让它工作的唯一方法是通过 Tomcat 配置 GUI,这不是我的问题可接受的解决方案。
Serhii 的建议有效,这里有更多细节。
如果您查看安装的 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/bin 目录中创建一个 setenv.(sh|bat) 文件,其中包含您要修改的环境变量。
catalina 脚本检查 setenv 脚本是否存在并运行它来设置环境变量。这样,您可以将参数更改为只有一个 tomcat 实例,并且更容易将其复制到另一个实例。
可能您的配置应用程序已经创建了 setenv 脚本,这就是 tomcat 忽略环境变量的原因。
使用CATALINA_OPTS
环境变量。
如果您使用 Ubuntu 11.10 和 apache-tomcat6(从 apt-get 安装),您可以将此配置放在/usr/share/tomcat6/bin/catalina.sh
# -----------------------------------------------------------------------------
JAVA_OPTS="-Djava.awt.headless=true -Dfile.encoding=UTF-8 -server -Xms1024m \
-Xmx1024m -XX:NewSize=512m -XX:MaxNewSize=512m -XX:PermSize=512m \
-XX:MaxPermSize=512m -XX:+DisableExplicitGC"
之后,您可以通过 ps -ef | 检查您的配置。grep tomcat :)
我使用以下setenv.bat
内容:
==============setenv.bat============
set JAVA_OPTS=-XX:MaxPermSize=256m -Xms256M -Xmx768M -Xdebug -Xnoagent -Xrunjdwp:transport=dt_socket,address=7777,server=y,suspend=n %JAVA_OPTS%
====================================
它还启用调试并将调试端口设置为 7777,并附加JAVA_OPTS
.
方便用于 linux 虚拟机;将 75% 的总系统内存用于 Tomcat。耶 AWK。
放在“{tomcat}/bin/startup.sh”的开头
export CATALINA_OPTS="-Xmx`cat /proc/meminfo | grep MemTotal | awk '{ print $2*0.75 } '`k"
只是为了添加到前面的评论,用于更新 Tomcat 服务设置(如果 Tomcat 在 Windows 上作为服务运行)的命令行工具的文档在这里。此工具使用正确的设置更新注册表。因此,如果您想更新 Tomcat 服务的最大内存设置,您可以运行它(从 tomcat/bin 目录),假设默认服务名称为 Tomcat5:
tomcat5 //US//Tomcat5 --JvmMx=512
我喜欢根据可用服务器内存设置 tomcat6 内存的想法(这很酷,因为我不必在硬件升级后更改设置)。这是我的(有点扩展的内存设置):
出口 CATALINA_OPTS="-Xmx
`cat /proc/meminfo | grep MemTotal | awk '{ print $2*0.75 } '`
k -Xms`cat /proc/meminfo | grep MemTotal | awk '{ print $2*0.75 } '`
k -XX:NewSize=`cat /proc/meminfo | grep MemTotal | awk '{ print $2*0.15 } '`
k -XX:MaxNewSize=`cat /proc/meminfo | grep MemTotal | awk '{ print $2*0.15 } '`
k -XX:PermSize=`cat /proc/meminfo | grep MemTotal | awk '{ print $2*0.15 } '`
k -XX:MaxPermSize=`cat /proc/meminfo | grep MemTotal | awk '{ print $2*0.15 } '`
k"
把它放到:“{tomcat}/bin/startup.sh”(例如 Ubuntu 10.10 的“/usr/share/tomcat6/bin”)
不确定它是否适合您。但是,真正对我们有用的监控 tomcat 内存设置以及连接数等的唯一方法是Lambda Probe。
它显示了 Tomcat 调优所需的大部分信息。我们使用 Tomcat 5.5 和 6.0 对其进行了测试,尽管 beta 状态和上次更新日期为 2006 年底,但它运行良好。
如果您要手动启动 Tomcat(而不是作为服务),那么 CATALINA_OPTS 环境变量就是要走的路。如果您将其作为服务启动,则设置可能存储在注册表中的某个位置。我在我的机器上安装了 Tomcat 6,我找到了HKLM\SOFTWARE\Apache Software Foundation\Procrun 2.0\Tomcat6\Parameters\Java
关键的设置。
如果您在 Windows 上运行 Tomcat,您可以使用 Tomcat 附带的简洁的“Tomcat Monitor”应用程序。
转到 Java 选项卡。在底部的“Java 选项”文本区域下方,您会发现 3 个输入字段:
只需编辑您的 catalina/bin/startup.sh 脚本。在其中添加以下命令:
#Adjust it to the size you want. Ignore the from bit.
export CATALINA_OPTS="-Xmx1024m"
#This should point to your catalina base directory
export CATALINA_BASE=/usr/local/tomcat
#This is only used if you editing the instance of your tomcat
/usr/share/tomcat6/bin/startup.sh
Sailab: http: //www.facejar.com/member/page-id-477.html
就我而言,有一个 /etc/sysconfig/tomcat5.conf 文件覆盖了 /etc/tomcat5/tomcat5.conf 中的所有设置