Hitachi

Cosminexus V11 アプリケーションサーバ 機能解説 保守/移行編


4.7.3 JavaVMのコマンドを使用する場合

JavaVMのコマンドを使用すると,拡張スレッドダンプにクラス別統計情報やExplicitヒープ詳細情報を取得できます。

〈この項の構成〉

(1) クラス別統計情報の拡張スレッドダンプへの取得

クラス別統計情報を含む拡張スレッドダンプは,jheapprofコマンドを実行して取得します。クラス別統計情報は,クラス別統計機能で出力する情報で,GCによるJavaオブジェクトの変化や,Javaオブジェクトの参照関係などを調査する場合に使用します。クラス別統計機能については,「9.3 クラス別統計機能」を,クラス別統計情報の出力方法については,「9.3.3 クラス別統計情報の出力」を参照してください。jheapprofコマンドについては,マニュアル「アプリケーションサーバ リファレンス コマンド編」の「jheapprof(クラス別統計情報付き拡張スレッドダンプの出力)」を参照してください。

(2) Explicitヒープ詳細情報の拡張スレッドダンプへの取得

Explicitヒープ詳細情報のうち,次の情報は明示管理ヒープ機能が有効な場合に,拡張スレッドダンプに必ず取得されます。

Explicitヒープ詳細情報のオブジェクト統計情報,およびExplicitメモリブロックの解放率情報は,eheapprofコマンドを実行して拡張スレッドダンプに取得します。オブジェクト統計情報は,Explicitメモリブロック内の詳細情報です。解放率情報は,Explicitメモリブロックの自動解放処理で解放されたオブジェクトの割合です。明示管理ヒープ機能を使用するシステムのデバッグや障害解析に使用します。

明示管理ヒープ機能については,マニュアル「アプリケーションサーバ 機能解説 拡張編」の「7. 明示管理ヒープ機能を使用したFullGCの抑止」を参照してください。eheapprofコマンドについては,マニュアル「アプリケーションサーバ リファレンス コマンド編」の「eheapprof(Explicitヒープ詳細情報付き拡張スレッドダンプの出力)」を参照してください。

実行形式

Windowsの場合

eheapprof [-f|-i] [-freeratio] -p <プロセスID>

UNIXの場合

eheapprof [-f|-i] [-freeratio] [-force] -p <プロセスID>
実行例

ここでは,プロセスIDが2463のJavaプロセスのクラス別統計情報を出力します。

  1. -pオプションに,クラス別統計情報を出力したいJavaプロセスのプロセスIDを指定して,eheapprofコマンドを実行します。

    % eheapprof -p 2463

    eheapprofコマンドで-fオプションを省略している場合,次の確認メッセージが表示されます。

    Windowsの場合

    クラス別統計情報付き拡張スレッドダンプを出力するかどうかを確認するメッセージが次の形式で表示されます。

    Force VM to output ExplicitHeapProf: ? (y/n)
    UNIXの場合

    プロセスIDを確認するメッセージが次の形式で表示されます。

    send SIGQUIT to 2463: ? (y/n)
  2. yを入力します。

    クラス別統計情報付き拡張スレッドダンプを出力すると,実行中のjavaプログラムでは次のメッセージが出力されます。

    Writing Java core to javacore2463.030806215140.txt... OK

    実行中のjavaプログラムは,カレントディレクトリにクラス別統計情報付き拡張スレッドダンプ(javacore<プロセスID>.<日時>.txt)を作成し,プログラムを継続します。