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