PHDファイルをEclipse Memory Analyzerで解析する
ちょっと前に業務でOOMの原因調査をした際にPortable Heap Dump (PHD) filesを解析する方法がわからなかったので備忘として残します。
ヒープダンプってどうやって出力されるのか?
OOMが発生した場合やjmapコマンドを利用すると、ヒープダンプ(メモリの中身)がファイルで出力されます。(出力される形式はhprofという形式)
jmapコマンド
プロセス、コア・ファイル、またはリモート・デバッグ・サーバーの、共用オブジェクト・メモリー・マップまたはヒープ・メモリーの詳細を出力します。このコマンドは試験的なものであり、サポート対象外になっています。
ヒープダンプを見るためのツール
ヒープダンプを解析できるツール「Eclipse Memory Analyzer(mat)」 をEclipseFoundationが作成しています。
EclipseFoundationが作成しているので、Eclipseプラグインとしても利用できるし、スタンドアローン版もあります。
ヒープダンプの解析はかなりメモリを消費するので、スタンドアローン版がおすすめです。
(ダウンロードURL)
Eclipse Memory Analyzer(mat)
PHDファイルって何?
IBMの製品のサーバー(WebSphere)を利用していると、hprof以外のファイル形式( Portable Heap Dump (PHD) files)で出力されます。
このファイルは「Eclipse Memory Analyzer(mat)」ではデフォルトでは解析できず、 解析にはDiagnostic Tool Framework for Java (DTFJ)をmatにインストールが必要です。
(参考にしたURL)
https://wiki.eclipse.org/MemoryAnalyzer
(インストール手順)
https://wiki.eclipse.org/MemoryAnalyzer#System_Dumps_and_Heap_Dumps_from_IBM_Virtual_Machines