ITEngineer must be cool (ITエンジニアはかっこいいって世界になってほしい)

エンジニアってかっこいいって想いを胸にプログラミングとか日々の生活について書いていきます。

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)

https://www.eclipse.org/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

https://developer.ibm.com/javasdk/tools/