Tomcat经理应用程序和webapps没有“看到”增加的JVM内存

时间:2016-03-31 13:53:19

标签: java tomcat jvm

使用domain.tld /经理/ serverinfo:

OK - Server info
Tomcat Version: Apache Tomcat/6.0.35
OS Name: Linux
OS Version: 2.6.32-042stab113.11
OS Architecture: amd64
JVM Version: 1.6.0_38-b38
JVM Vendor: Sun Microsystems Inc.

在我的Ubuntu 12.04 LTS机器上,我已经将Tomcat的JVM内存从-Xms64m -Xmx128m增加到-Xms256m -Xmx768m - 或者我认为。当我重新启动Tomcat后查看java进程时,所有内容看起来都已接受增加的内存。

我使用JAVA_OPTS="-Xms256m -Xmx768m"启动Tomcat,它根据top工作(进程1842是唯一的java进程):

  PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND
 1842 tomcat6   20   0 1455m 162m  11m S    0  2.0   0:16.35 /usr/lib/jvm/java-6-openjdk-amd64/bin/java -Djava.util.logging.config.file=/var/lib/tomcat6/conf/logging.properties -Xms256m -Xmx768m ...

# cat /proc/1842/cmdline
/usr/lib/jvm/java-6-openjdk-amd64/bin/java -Djava.util.logging.config.file=/var/lib/tomcat6/conf/logging.properties -Xms256m -Xmx768m -Djava.endorsed.dirs=...

但是当我查看经理webapp时,我看不到我期望的信息。它和以前一样(是的,我重新启动了Tomcat并重新加载了页面)。

使用domain.tld /经理/状态:

JVM
Free memory: 15.69 MB Total memory: 78.18 MB Max memory: 113.81 MB

我甚至可以强制发生Out-of-Java-heap-space错误,该错误发生在126米左右(由经理webapp报告)。显然,我的webapp没有看到增加的JVM内存。我做错了什么?

编辑1

我遇到了Java虚拟机进程状态工具(jps),它给了我一个很好的细节:即使你看不到cat /proc/1842/cmdline,旧的-Xms64M-Xmx128m进入JVM(见最后):

# jps -lvm
1842 org.apache.catalina.startup.Bootstrap start -Djava.util.logging.config.file=/var/lib/tomcat6/conf/logging.properties -Djava.awt.headless=true -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Xms256m -Xmx768m -XX:MaxPermSize=512m -Xss192k -XX:+UseParallelGC -XX:MaxGCPauseMillis=1500 -XX:GCTimeRatio=9 -XX:+DisableExplicitGC -Djava.endorsed.dirs=/usr/share/tomcat6/endorsed -Dcatalina.base=/var/lib/tomcat6 -Dcatalina.home=/usr/share/tomcat6 -Djava.io.tmpdir=/tmp/tomcat6-tomcat6-tmp -Xms64M -Xmx128m

现在我只需找到-Xms64M-Xmx128m来自的地方。显然JVM并不关心我的参数,即使它们被传递给它(通过setenv.sh)。我开始搜索但还没找到任何东西......

编辑2

不知何故_JAVA_OPTIONS已设置并覆盖我在setenv.sh中指定的值。我现在正在清除_JAVA_OPTIONS,一切都很好。

0 个答案:

没有答案