メモリリークが原因でTomcatアプリケーションがクラッシュしました。クラッシュしたsystem/jvmでヒープダンプを取得したいと思います。出来ますか?私はwindows/tomcat 6をどのように使用していますか?
4 に答える
プロセスはもう存在しません。したがって、ダンプするヒープはありません。次回は「-XX:+HeapDumpOnOutOfMemoryError」を使用します。
実行時にヒープダンプを取得するには、次の方法があります。
jmap -dump:live、format = b、file = heap.dump
実行されなくなったプロセスでヒープダンプを取得することはできません。次にTomcatを起動するときは、catalina.sh
最初に呼び出された/ binディレクトリ内のファイルを編集して、メモリが不足した場合にヒープを自動的にダンプするオプションが含まれるようにする必要があります。
JAVA_OPTS
必要なJVMオプションが含まれるように、変数を編集する必要があります。したがって、ファイルの先頭近くで、JAVA_OPTS
作成後、次のようなことを行う必要があります。
JAVA_OPTS="$JAVA_OPTS -XX:+HeapDumpOnOutOfMemoryError"
JConsoleを使用してヒープダンプを取得することもできますが、これを行うには、ヒープダンプが問題の診断に役立つように、Tomcatのメモリが不足している時期を大まかに知る必要があります。
アプリケーションが応答しないのにJVMがまだ足を引きずっている場合は、JConsoleを使用して、ヒープダンプをトリガーしてみてください。このリンクでヒープダンプを検索する