Hitachi

Cosminexus V11 アプリケーションサーバ リファレンス コマンド編


jheapprof(クラス別統計情報付き拡張スレッドダンプの出力)

〈このページの構成〉

形式

jheapprof [-i|-f] [-class <クラス名>] [-staticroot|-nostaticroot]
          [-explicit|-noexplicit] [-fullgc|-copygc|-nogc]
          [-garbage|-nogarbage] [-rootobjectinfo|-norootobjectinfo]
          [-rootobjectinfost <値> ] [-force] -p <プロセスID>

機能

引数に指定したプロセスIDのjavaプロセスについて,クラス別統計情報を含んだ拡張スレッドダンプを出力します。

引数

-i

クラス別統計情報付き拡張スレッドダンプの出力処理の実行を確認するメッセージが表示されます。表示されたメッセージに対してyまたはnを入力します。このとき,yを入力すると,クラス別統計情報を含んだ拡張スレッドダンプが出力されます。nを入力すると,何も出力しないで処理を終了します。省略した場合,-fオプションが指定されないかぎり,このオプションは有効です。

-f

-iオプションを無効にします。省略した場合,-iオプションが有効になります。

-class <クラス名>

<クラス名>に指定したクラス(インスタンス)をメンバに持つクラスの構造を一覧にしてスレッドダンプ中に出力します。

-staticroot

staticフィールドを基点とした参照関係情報出力機能を有効にし,staticフィールドを基点とした参照関係情報を出力します。省略した場合,-nostaticrootオプションが指定されない限り,このオプションは有効です。

このオプションの前提は,-classオプションです。-classオプションの指定がない場合,このオプションは無効になります。

なお,このオプションとnostaticrootオプションを同時に指定している場合,最後に指定しているオプションが有効になります。

-nostaticroot

staticフィールドを基点とした参照関係情報出力機能を無効にします。省略した場合,-staticrootオプションが有効になります。

なお,このオプションと-staticrootオプションを同時に指定している場合,最後に指定しているオプションが有効になります。

-explicit

インスタンス統計機能の統計対象にExplicitヒープを含めます。省略した場合,-noexplicitオプションが指定されないかぎり,このオプションは有効です。なお,このオプションと-noexplicitオプションを同時に指定している場合,最後に指定しているオプションが有効になります。

-noexplicit

インスタンス統計機能の統計対象にExplicitヒープを含めません。省略した場合,-explicitオプションが有効になります。なお,このオプションと-explicitオプションを同時に指定している場合,最後に指定しているオプションが有効になります。

-fullgc

統計する前に実行するGCにFullGCを設定します。省略した場合,-copygcオプションや-nogcオプションが指定されないかぎり,このオプションは有効です。なお,このオプションと-copygcオプションまたは-nogcオプションを同時に指定している場合,最後に指定しているオプションが有効になります。

-copygc

統計する前に実行するGCにCopyGCを設定します。このオプションと-nogcオプションを省略した場合,-fullgcオプションが有効になります。

なお,このオプションと-fullgcオプションまたは-nogcオプションを同時に指定している場合,最後に指定しているオプションが有効になります。

-nogc

統計する前にGCを実行しません。このオプションと-copygcオプションを省略した場合,-fullgcオプションが有効になります。なお,このオプションと-fullgcオプションまたは-copygcオプションを同時に指定している場合,最後に指定しているオプションが有効になります。

-garbage

Tenured領域内不要オブジェクト統計機能が有効になり,Tenured領域内の不要なオブジェクトを統計対象としたクラス別統計情報を出力します。また,インスタンス統計機能とSTATICメンバ統計機能は無効になります。省略した場合,-nogarbageオプションが有効になります。統計前GC選択機能については,-fullgcオプション,-copygcオプションが無効になり,-nogcオプションは有効になります。このため,統計処理前にGCを実行しません。なお,このオプションと-nogarbage オプションを同時に指定している場合,最後に指定しているオプションが有効になります。

-nogarbage

Tenured領域内不要オブジェクト統計機能が無効になります。そのため,Tenured領域内の不要なオブジェクトを統計対象としたクラス別統計情報は出力しません。省略した場合,-garbageオプションが指定されないかぎり,このオプションは有効です。なお,このオプションと-garbageオプションを同時に指定している場合,最後に指定しているオプションが有効になります。

-rootobjectinfo

Tenured増加要因の基点オブジェクトリスト出力機能が有効になり,Tenured増加要因の基点オブジェクトリストを出力します。

このオプションは,-garbageオプションが有効であることが前提です。そのため,-nogarbageオプションを有効にすると,このオプションは無効になります。省略した場合,-norootobjectinfoオプションが指定されないかぎり,このオプションは有効です。なお,このオプションと-norootobjectinfoオプションを同時に指定している場合,最後に指定しているオプションが有効になります。

-norootobjectinfo

Tenured増加要因の基点オブジェクトリスト出力機能が無効になります。そのため,Tenured増加要因の基点オブジェクトリストは出力しません。省略した場合,-rootobjectinfoオプションが有効になります。なお,このオプションと-rootobjectinfoオプションを同時に指定している場合,最後に指定しているオプションが有効になります。

-rootobjectinfost <値>

Tenured増加要因の基点オブジェクトリストの情報量を調節します。インスタンスサイズの合計が,指定した<値>以上のクラス情報だけが,Tenured増加要因の基点オブジェクトリストに出力されます。省略した場合,0が設定されます。

このオプションは,-rootobjectinfoオプションが有効であることが前提です。そのため,-norootobjectinfoオプションを有効にすると,このオプションは無効になります。<値>には0以上の自然数を指定できます。自然数以外や,文字列を指定した場合は,引数の指定に誤りがあるという内容のエラーメッセージが出力されて終了します。

-force

javaプロセスが作成する/tmp/hsperfdata_<ユーザ名>/<プロセスID>ファイルの有無の確認をしないで,-pオプションで指定したプロセスIDのjavaプロセスに対して拡張スレッドダンプの出力を要求します。

なお,このオプションはUNIX用のオプションです。

-p <プロセスID>

<プロセスID>には,クラス別統計情報を出力するjavaプログラムのプロセスIDを指定します。

戻り値

0:

正常終了しました。

1:

異常終了しました。

2:

一定時間内にクラス別統計情報出力処理終了の応答がありませんでした。

入力例

  1. -fオプションを省略してjheapprofコマンドを実行します。

    % jheapprof -p 2463
  2. Windowsの場合,クラス別統計情報付き拡張スレッドダンプを出力するかどうかの確認メッセージが表示されます。UNIXの場合,プロセスIDの確認メッセージが表示されます。

    • Windowsの場合

      Force VM to output HitachiJavaHeapProfile: ? (y/n)

    • UNIXの場合

      send SIGQUIT to 2463: ? (y/n)

  3. Windowsの場合,クラス別統計情報付き拡張スレッドダンプを出力する場合はyを,出力しない場合はnを入力します。UNIXの場合,SIGQUITシグナルを送信させる場合はyを,送信させない場合はnを入力します。

    • Windowsの場合

      Force VM to output HitachiJavaHeapProfile: ? (y/n)y

    • UNIXの場合

      send SIGQUIT to 2463: ? (y/n)y

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

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

出力形式

クラス別統計情報の出力形式については,マニュアル「アプリケーションサーバ 機能解説 保守/移行編」の「9.10 クラス別統計情報解析機能」を参照してください。

出力メッセージ

次のエラーメッセージまたは警告メッセージが出力された場合,クラス別統計情報付き拡張スレッドダンプは出力されません。

表10‒11 jheapprofコマンドで出力されるメッセージ(Windowsの場合)

項番

エラーメッセージ

説明

1

usage: jheapprof [-f|-i] [-class classname] [-staticroot|-nostaticroot] [-explicit|-noexplicit] [-fullgc|-copygc|-nogc] [-garbage|-nogarbage] [-rootobjectinfo|-norootobjectinfo] [-rootobjectinfost size] -p process-id

jheapprofコマンドへの引数の指定が間違っています。

2

jheapprof: illegal option -- <オプション>

jheapprofコマンドに指定した<オプション>が不正です。

3

<プロセスID>: Now processing previous request, this request canceled

jheapprofコマンドの引数に指定した<プロセスID>に該当するプロセスが,クラス別統計情報の出力中です。

4

<プロセスID>: Not owner

jheapprofコマンドの引数に指定した<プロセスID>に0が指定されています。

5

jheapprof: can't create work file at temporary directory , this request canceled

一時ファイル用ディレクトリに参照・書き込み権限がない場合,クラス別統計情報付き拡張スレッドダンプを出力できません。クラス別統計情報付き拡張スレッドダンプの出力要求はキャンセルされます。

6

jheapprof: can't get temporary directory, this request canceled

一時ファイル用ディレクトリが取り出せない場合,クラス別統計情報付き拡張スレッドダンプを出力できません。クラス別統計情報付き拡張スレッドダンプの出力要求はキャンセルされます。

7

jheapprof: please delete <削除できなかったファイル名> in <削除できなかったファイルのフルパス>

jheapprofコマンドを終了したときに,内部ファイルを削除できませんでした。削除できなかったファイルのフルパスにある,削除できなかったファイルを削除してください。

8

jheapprof: unexpected error occurred: <エラー原因>

jheapprofコマンド実行中に予期しないエラーが発生しました。

<エラー原因>には,例えば下記のような表示がされます。

  • 作業用メモリ確保に失敗した場合

    malloc systemcall fail (errno=Y)

  • オブジェクトのクローズに失敗した場合

    close systemcall fail (errno=Y)

9

jheapprof: can't communicate with process <プロセスID>

jheapprofコマンドの引数に指定した<プロセスID>に該当するプロセスに問題があり,通信処理でエラーが発生しているため通信できません。または,jheapprofコマンドの引数に指定した<プロセスID>に該当するプロセスがありません。

10

<プロセスID>: Timeout occurred. Java process not responding

jheapprofコマンドの引数に指定した<プロセスID>に該当するプロセスから,一定時間内にクラス別統計出力処理終了の応答がありませんでした。

表10‒12 jheapprofコマンドで出力されるメッセージ(UNIXの場合)

項番

エラーメッセージ

説明

1

usage: jheapprof [-f|-i] [-class classname] [-staticroot|-nostaticroot] [-explicit|-noexplicit] [-fullgc|-copygc|-nogc] [-garbage|-nogarbage] [-rootobjectinfo|-norootobjectinfo] [-rootobjectinfost size] [-force] -p process-id

jheapprofコマンドへの引数の指定が間違っています。

2

jheapprof: illegal option -- <オプション>

jheapprofコマンドに指定した<オプション>が不正です。

3

<プロセスID>: Now processing previous request, this request canceled

jheapprofコマンドの引数に指定した<プロセスID>に該当するプロセスが現在クラス別統計情報の出力中です。

4

<プロセスID>: No such process

jheapprofコマンドの引数に指定した<プロセスID>に該当するプロセスがありません。または,jheapprofコマンドで指定した<プロセスID>に該当するプロセスがjavaプロセス以外でした。

5

<プロセスID>: Not owner

jheapprofコマンドの引数に指定した<プロセスID>のプロセスのオーナーではありません。

6

jheapprof: can't create work file at /tmp , this request canceled

一時ファイル用ディレクトリに参照・書き込み権限がない場合,クラス別統計情報付き拡張スレッドダンプを出力できません。クラス別統計情報付き拡張スレッドダンプの出力要求はキャンセルされます。

7

jheapprof: please delete <削除できなかったファイル名> in <削除できなかったファイルのフルパス>

jheapprofコマンドを終了したときに,内部ファイルを削除できませんでした。削除できなかったファイルのフルパスにある,削除できなかったファイルを削除してください。

8

jheapprof: unexpected error occurred: <エラー原因>

jheapprofコマンド実行中に予期しないエラーが発生しました。

<エラー原因>には,例えば下記のような表示がされます。

  • 作業用メモリ確保に失敗した場合

    malloc systemcall fail (errno=Y)

  • オブジェクトのクローズに失敗した場合

    close systemcall fail (errno=Y)

9

<プロセスID>: Timeout occurred. Java process not responding

jheapprofコマンドの引数に指定した<プロセスID>に該当するプロセスから,一定時間内にクラス別統計情報出力処理終了の応答がありませんでした。

注意事項