如何在不使用configuration程序的情况下调整Tomcat 5.5 JVM内存设置
我需要将Tomcat内存设置configuration为更大安装的一部分,因此在configuration应用程序之后手动configurationtomcat是不可能的。 我以为我可以把JVM内存设置放到JAVA_OPTS环境variables中,但是我正在用jconsoletesting它,看看它是否工作,它不。
根据下面的注释,CATALINA_OPTS也不起作用。 到目前为止,我可以通过TomcatconfigurationGUI来实现它的唯一方法,这对我的问题来说不是一个可以接受的解决scheme。
Serhii的build议是有效的,这里有更多的细节。
如果您查看安装的bin目录,您将看到catalina.sh或.bat脚本。 如果你看这些,你会看到他们分别运行一个setenv.sh或setenv.bat脚本,如果它存在的话,设置环境variables。 相关的环境variables在catalina.sh/bat顶部的注释中进行了描述。 要使用它们,例如创build一个带有内容的$ CATALINA_HOME / bin / setenv.sh文件
export JAVA_OPTS="-server -Xmx512m"
对于Windows,您需要在setenv.bat中使用类似的东西
set JAVA_OPTS=-server -Xmx768m
希望这有助于格伦
在你想修改的环境variables的tomcat / bin目录下创build一个setenv。(sh | bat)文件。
catalina脚本检查setenv脚本是否存在并运行它来设置环境variables。 这样你就可以将参数改变为只有一个tomcat实例,并且更容易将其复制到另一个实例。
可能你的configuration应用程序已经创build了setenv脚本,这就是为什么tomcat忽略了环境variables。
使用CATALINA_OPTS
环境variables。
如果你使用Ubuntu 11.10和apache-tomcat6(从apt-get安装),你可以把这个configuration放在/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 |查看您的configuration grep tomcat 🙂
方便的Linux虚拟机; 使用Tomcat总系统内存的75%。 Yay AWK。
放在“{tomcat} /bin/startup.sh”的开头
export CATALINA_OPTS="-Xmx`cat /proc/meminfo | grep MemTotal | awk '{ print $2*0.75 } '`k"
我使用以下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% ====================================
它还启用debugging并将debugging端口设置为7777,并附加以前的JAVA_OPTS
内容。
只是添加到以前的评论中,用于更新Tomcat服务设置(如果Tomcat在Windows上作为服务运行)的命令行工具的文档在这里 。 此工具使用适当的设置更新registry。 所以,如果你想更新Tomcat服务的最大内存设置,你可以运行这个(从tomcat / bin目录),假设Tomcat5的默认服务名称为:
tomcat5 //US//Tomcat5 --JvmMx=512
我喜欢根据可用服务器内存来设置tomcat6内存的想法(这很酷,因为我不必在硬件升级后更改设置)。 这是我的(有点扩展内存设置):
export CATALINA_OPTS =“ – Xmx`cat
`cat /proc/meminfo | grep MemTotal | awk '{ print $2*0.75 } '`
k -Xms`cat`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”)
不知道它会适用于您的解决scheme。 但是,监控tomcat内存设置的唯一方法以及实际为我们工作的连接数量是Lambda Probe 。
它显示了我们需要用于Tomcat Tuning的大部分信息。 我们使用Tomcat 5.5和6.0进行了testing,尽pipetesting版状态和2006年年底的最新更新date仍然正常。
如果你手动启动Tomcat(而不是服务),那么CATALINA_OPTS环境variables是要走的路。 如果您将其作为服务启动,则设置可能存储在registry中的某个位置。 我在我的机器上安装了Tomcat 6,并在HKLM\SOFTWARE\Apache Software Foundation\Procrun 2.0\Tomcat6\Parameters\Java
密钥中find了这些设置。
如果您在Windows上运行Tomcat,则可以使用Tomcat附带的整洁的“Tomcat Monitor”应用程序。
转到Java选项卡。 在“Java选项”文本框底部,您会发现3个input字段:
- 初始内存池_ __ MB
- 最大内存池_ __ MB
- 线程堆栈大小_ ____ KB
只需编辑你的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中的所有设置