如何在不使用配置程序的情况下调整Tomcat 5.5 JVM内存设置

时间:2008-11-13 01:17:22

标签: java tomcat memory jvm

我需要将Tomcat内存设置配置为更大安装的一部分,因此在事实无法实现后,使用配置应用程序手动配置tomcat。我以为我可以把JVM内存设置放到JAVA_OPTS环境变量中,但是我正在使用jconsole来测试它是否有效,而且......没有。

根据下面的评论,CATALINA_OPTS也不起作用。到目前为止,我能让它工作的唯一方法是通过Tomcat配置GUI,这对我的问题来说不是一个可接受的解决方案。

12 个答案:

答案 0 :(得分:71)

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

希望这有帮助, 格伦

答案 1 :(得分:24)

使用您想要修改的环境变量在tomcat / bin目录中创建一个setenv。(sh | bat)文件。

catalina脚本检查setenv脚本是否存在并运行它来设置环境变量。这样,您可以将参数更改为仅一个tomcat实例,并且更容易将其复制到另一个实例。

可能你的配置应用已经创建了setenv脚本,这就是为什么tomcat忽略了环境变量。

答案 2 :(得分:5)

使用CATALINA_OPTS环境变量。

答案 3 :(得分:3)

我使用以下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内容。

答案 4 :(得分:3)

方便linux虚拟机;将全部系统内存的75%用于Tomcat。 YAY AWK。

放在“{tomcat} /bin/startup.sh”

的开头
export CATALINA_OPTS="-Xmx`cat /proc/meminfo | grep MemTotal | awk '{ print $2*0.75 } '`k"

答案 5 :(得分:2)

只是要添加到上一个注释,用于更新Tomcat服务设置的命令行工具的文档(如果Tomcat作为Windows上的服务运行)是here。此工具使用正确的设置更新注册表。 因此,如果您想更新Tomcat服务的最大内存设置,您可以运行此命令(来自tomcat / bin目录),假设默认服务名称为Tomcat5:

tomcat5 //US//Tomcat5 --JvmMx=512

答案 6 :(得分:2)

我喜欢根据可用的服务器内存设置tomcat6内存的想法(这很酷,因为我不需要在硬件升级后更改设置)。这是我的(有点扩展的内存设置):

  

export 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”)

答案 7 :(得分:1)

不确定它是否适用于您的解决方案。但监控tomcat内存设置以及实际适用于我们的连接数等的唯一方法是Lambda Probe

它显示了Tomcat调优所需的大部分信息。我们使用Tomcat 5.5和6.0进行了测试,尽管测试版状态和2006年底的最新更新日期仍然正常。

答案 8 :(得分:1)

如果您手动启动Tomcat(而不是服务),则可以使用CATALINA_OPTS环境变量。如果您将其作为服务启动,则设置可能存储在注册表中的某个位置。我在我的机器上安装了Tomcat 6,并在HKLM\SOFTWARE\Apache Software Foundation\Procrun 2.0\Tomcat6\Parameters\Java键找到了设置。

答案 9 :(得分:1)

如果在Windows上运行Tomcat,则可以使用Tomcat附带的简洁“Tomcat Monitor”应用程序。

转到Java选项卡。在底部,在“Java Options”textarea下面,您将找到3个输入字段:

  • 初始内存池 _ __ MB
  • 最大内存池 _ __ MB
  • 线程堆栈大小 _ ____ KB

答案 10 :(得分:0)

只需编辑你的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

答案 11 :(得分:0)

在我的情况下,有一个/etc/sysconfig/tomcat5.conf文件覆盖了/etc/tomcat5/tomcat5.conf中的所有设置