我正在使用 Tomcat 6 运行 Web 应用程序。我们使用的是开放式 JDK 6。我们的是 AMD 64 位 Ubuntu 11.04 服务器。
此命令进行内存转储
jmap -dump:format=b,file=/home/demon/Desktop/mymemorydump.hprof 2762
内存转储为 4.5 GB。当我们使用 eclipse MAT 分析它时,强可达对象为 80 MB,不可达对象为 335 MB..如何分析转储的其余部分..
此过程在我的服务器上占用的内存也是 4.5 GB。现在这个内存永远不会下降到 1 GB 的正常水平。然后这个内存慢慢增加到8-9 GB,然后我们的tomcat停止响应(实际上没有内存不足的错误)。
我的tomcat配置是
/usr/lib/jvm/java-6-openjdk/bin/java -Djava.util.logging.config.file=/var/lib/tomcat6/conf/logging.properties -Djava.awt.headless=true -Xms1024m -Xmx6144m -XX:+UseConcMarkSweepGC -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Djava.endorsed.dirs=/usr/share/tomcat6/endorsed -classpath /usr/share/tomcat6/bin/bootstrap.jar -Dcatalina.base=/var/lib/tomcat6 -Dcatalina.home=/usr/share/tomcat6 -Djava.io.tmpdir=/tmp/tomcat6-tmp org.apache.catalina.startup.Bootstrap start