【发布时间】:2013-03-22 15:41:57
【问题描述】:
我在 catalina.sh 中设置 CATALINA_OPTS 但奇怪的是这个值似乎被忽略了。我在一台有 768M RAM 的机器上。以下是重现的步骤
我在启动 Tomcat 之前通过运行 free -m 检查内存。我得到以下内容
total used free shared buffers cached
768 43 724 0 0 16
我在 catalina.sh 的第一行中设置了 CATALINA_OPTS,如下所示:
export CATALINA_OPTS="-Xms64M -Xmx256M"
然后我使用 ./startup.sh 启动 Tomcat
我通过执行 ps aux | grep tomcat 来检查 Tomcat 是否接受了参数。我得到以下结果,这似乎表明该设置已被读取
root 1164 26.0 6.2 1232968 49116 pts/0 Sl 10:30 0:01 /usr/bin/java -Djava.util.logging.config.file=/usr/share/apache-tomcat-7.0.39/conf/logging.properties -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Xms64M -Xmx256M -Djava.endorsed.dirs=/usr/share/apache-tomcat-7.0.39/endorsed -classpath /usr/share/apache-tomcat-7.0.39/bin/bootstrap.jar:/usr/share/apache-tomcat-7.0.39/bin/tomcat-juli.jar -Dcatalina.base=/usr/share/apache-tomcat-7.0.39 -Dcatalina.home=/usr/share/apache-tomcat-7.0.39 -Djava.io.tmpdir=/usr/share/apache-tomcat- 7.0.39/temp org.apache.catalina.startup.Bootstrap 启动
我再次运行free -m,但我得到了
total used free shared buffers cached
768 558 209 0 0 20
这表明使用了 512MB。 我不确定我做错了什么。我也尝试过设置 JAVA_OPTS,但也没有用。
我在 CentOS 6 上使用 JDK7 和 Apache Tomcat 7。
编辑 1:以下是我将 -Xmx 值分别设置为 128 和 64 时的结果
total used free shared buffers cached
768 432 335 0 0 39
和
total used free shared buffers cached
768 366 401 0 0 32
看起来 -Xms 设置根本没有任何效果,并且正在使用超过 -Xmx 设置值的大约 250MB。
这很难解释。这是一个普通的 Tomcat 7 安装,没有安装 webapps(除了默认的)。他们肯定不会占用 250 MB,是吗?
【问题讨论】:
标签: java tomcat heap-memory tomcat7 catalina