4.2.6 jheapprofanalyzer
クラス別統計情報解析ファイルのCSV出力
書式
jheapprofanalyzer [-J オプション名] [ファイル名]
格納先
Application Serverインストールディレクトリー\jdk\jre\bin\
機能
クラス別統計情報の付いた複数の拡張スレッドダンプファイルを入力ファイルとして、クラスごとのインスタンスの合計サイズ、およびクラスごとのインスタンス数を時系列に出力します。出力するファイルは、CSV形式です。
クラス別統計情報解析機能では、インスタンスの合計サイズが大きいインスタンスの情報を出力して、そのインスタンスのメモリー使用量だけを確認することもできます。インスタンスの合計サイズが大きいものだけを出力する場合には-DJP.co.Hitachi.soft.jvm.tools.jheapprofanalyzer.thresholdにしきい値を指定し、jheapprofanalyzerコマンドに指定して実行します。
ファイル
クラス別統計情報付き拡張スレッドダンプファイル(javacoreプロセスID.日時.txt)
引数
- -J オプション名
-
オプション名には、次のオプションを指定できます。また、次のオプション以外を指定した場合は、動作保証の対象外となります。
-
-Xms
メモリー割り当てプールの初期サイズをバイト数で指定します。
-
-Xmx
メモリー割り当てプールの最大サイズをバイト数で指定します。
-
-DJP.co.Hitachi.soft.jvm.tools.jheapprofanalyzer.threshold=num
num: インスタンス合計サイズのしきい値を設定します。範囲は0〜263-1 (Long.MAX_VALUE)です。インスタンス合計サイズがnum以上のクラスだけ出力します。
デフォルト値:1024
-
- ファイル名
-
クラス別統計情報付き拡張スレッドダンプファイルを指定できます。ファイル名称の規定は、特にありません。また、ファイルの指定は、順不同であり、数に制限はありません。
出力形式
ここでは、クラス別統計情報解析機能の入力ファイル、出力ファイル、および出力形式について説明します。
- 入力ファイル
-
クラス別統計情報解析機能で使用する入力ファイルは、クラス別統計情報を出力した拡張スレッドダンプファイルです。
- 出力ファイル
-
クラス別統計情報解析機能で出力するファイルは、クラスごとのインスタンスの合計サイズを出力したファイル、およびクラスごとのインスタンス数を出力したファイルの2種類です。出力ファイルはカレントディレクトリーに次のファイル名で作成されます。
出力ファイルの種類
出力ファイルのファイル名の例
インスタンス合計サイズファイル
JheapprofAnalyzer_size_nnn.csv
インスタンス数ファイル
JheapprofAnalyzer_num_nnn.csv
- (凡例)
-
nnn:ファイルの分割番号が出力されます。分割番号の範囲は001〜999です。
列が201列を超える場合は出力ファイルが分割されます。また、999ファイルを超えた場合は、001に戻りファイルは書き換えられます。
分割する列数は、201列(クラス名1列+値200列)を超えた場合とし、出力形式は分割したファイルも同じになります。
- 出力形式
-
クラス別統計情報解析機能で出力されるファイルの出力形式を次の表に示します。なお、インスタンス合計サイズ、およびインスタンス数が出力されたCSVファイルの出力形式は同じです。1列目はクラス名、入力ファイル名は最大200個(列)です。
class name,
入力ファイル名,
入力ファイル名,
・・・
入力ファイル名
クラス名,
値-1-1,
値-1-2,
・・・
値-1-xxx
:
:
:
・・・
:
クラス名,
値-y-1,
値-y-2,
・・・
値-y-xxx
- (凡例)
-
入力ファイル名:処理対象に指定したクラス別統計情報
クラス名:入力ファイルに出力されていたクラス名
値:インスタンスの合計サイズ、またはインスタンス数
クラス名と値、および値と値の間はコンマで区切ります。また、行の最後は値(スペースも含む)で終了します。
クラス名の出力順はランダムです。値は入力ファイルの先頭行にある日付を基に、日付の古いものから横に並びます。同じ日付の入力ファイルがある場合はランダムに連続して横に並びます。
- 参考
-
クラス別統計情報解析機能を複数回実行すると、処理途中のクラスが消滅したり追加されたりする場合があります。また、該当するクラスがない場合の値には0が出力されます。クラス情報の例を使用して説明します。
1回目のクラス別統計情報(A.txt)
2回目のクラス別統計情報(B.txt)
3回目のクラス別統計情報(C.txt)
ClassA 100 ClassB 100
ClassA 100 ClassB 30 ClassC 50 ClassD 0
ClassA 100 ClassC 50
上記のようなクラス情報の場合で、-DJP.co.Hitachi.soft.jvm.tools.jheapprofanalyzer.thresholdのしきい値を0にしたときの出力結果は次のようになります。
class name,A.txt,B.txt,C.txt ClassA, 100,100, 100 ClassB, 100, 30, 0 ClassC, 0, 50, 50 ClassD, 0, 0, 0
インスタンス合計サイズの最大値は0〜263-1、インスタンス数の最大値は0〜231-1です。1つの入力ファイルに同じクラス名がある場合は、インスタンスサイズの合計が加算されます。また、インスタンス数も加算されます。加算されたことによって、それぞれの最大値を超えた場合は、指定した最大値が出力されます。なお、1つのクラスについて、すべての入力ファイルで該当するクラスの情報がない、またはしきい値未満の場合は、そのクラスの情報は出力されません。
入力例
jheapprofanalyzer -J-Xms1024m -J-Xmx1024m -J-DJP.co.Hitachi.soft.jvm.tools.jheapprofanalyzer.threshold=5000 javacore22356.080523161703.txt javacore22356.080523161711.txt
戻り値
戻り値 |
説明 |
---|---|
0 |
正常終了しました。 |
1 |
異常終了しました。 |
出力メッセージ
次のエラーメッセージが出力された場合、クラス別統計情報解析ファイルは出力されません。また、次のエラーメッセージ以外が出力された場合は、デフォルトの例外処理となります。
項番 |
エラーメッセージ |
説明 |
出力後の動作 |
---|---|---|---|
1 |
usage: jheapprofanalyzer [options] file...where options include:-J-Xms<size> set initial Java heap size-J-Xmx<size> set maximum Java heap size-J-DJP.co.Hitachi.soft.jvm.tools.jheapprofanalyzer.threshold=<num> set instance total size threshold |
JheapprofAnalyzerクラスへの引数の指定が間違っています。 |
(a) |
2 |
JheapprofAnalyzer: Illegal property valuenum. Default is assumed. |
JP.co.Hitachi.soft.jvm.tools.jheapprofanalyzer.thresholdのnumに数字以外を指定しました。またはnumが範囲外となっています。 |
(b) |
3 |
JheapprofAnalyzer: can't open input fileファイル名 |
ディレクトリーにファイル名がありません。または、別の原因でファイルを開けません。 |
(c) |
4 |
JheapprofAnalyzer: can't read input fileファイル名 |
ファイル名の読み込みに失敗しました。 |
(c) |
5 |
JheapprofAnalyzer: Illegal input file formatファイル名 |
ファイル名は、クラス別統計情報付き拡張スレッドダンプファイルではありません。 |
(c) |
6 |
JheapprofAnalyzer: can't open output fileファイル名 |
出力ファイルが開けません。エラーの原因として、次の状態が考えられます。
|
(a) |
7 |
JheapprofAnalyzer: can't write output fileファイル名 |
ファイル名の書き込みに失敗しました。 |
(a) |
- (凡例)
-
(a):エラーとなり処理を終了します。
(b):デフォルトを仮定して処理を続行します。
(c):処理を続行し、指定したすべての入力ファイルのエラーチェックをします。
注意事項
クラス別統計情報解析機能では、日付を取得するときと、データを読み込むときにファイルを開きます。そのため、コマンド実行中に入力ファイルの更新および削除の操作をした場合の結果は保証されません。