javaのHeap dumpを取得したい
batchとかで実行しているjavaのスナップショットをとりたい
※実行中のjavaのプロセスが1111だった場合
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- -
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
1、JavaのHeap dumpを取得する
#gcore 1111
- >カレントディレクトリにcore.1111(core.
)というファイルができる。 - >めちゃくちゃおもいので要注意!
2、${JAVA_HOME}/bin/jmap -heap:format=b ${JAVA_HOME}/bin/java core.1111
- > JavaのHeap dumpを取得する。すると、カレントディレクトリにheap.binというバイナリのHeap dumpデータが生成される。
3、Heap dumpデータを解析する
取得したデータと「Eclipse Memory Analyzer」を使用してメモリリークを調査する
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- -
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
ちなみにうちは、2で
Attaching to core core.1111 from executable ${JAVA_HOME}/bin/java, please wait... Error attaching to core file: Can't attach to the core file
こんなこと言われて失敗しました。
以下参照、
Javaトラブルシューティング メールマガジン バックナンバー一覧
java/MemoryLeaks - tech.cm55.com
JavaプログラムのパフォーマンスアップやOutOfMemoryError例外対策