我在 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
. 我得到以下结果,这似乎表明该设置已被读取
根 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.属性 -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 start
我又跑了free -m
,但我得到了
total used free shared buffers cached
768 558 209 0 0 20
这表明使用了 512MB。我不确定我做错了什么。我也尝试设置 JAVA_OPTS 但这也不起作用。
我在带有 JDK7 和 Apache Tomcat 7 的 CentOS 6 上。
编辑 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,是吗?