Java ランタイム統計
HJV_JZOS_JVM_SMF_LOGGING JZOS 環境変数を使用して、Java™ ランタイム統計を含むシステム管理機能 (SMF) レコードのロギングを有効にすることができます。
デフォルトでは、Java ランタイム統計のロギングは無効になっています。 この環境変数が trueに設定されている場合、JZOS バッチ・ランチャーは JVM シャットダウン・フックを登録して、JVM がシャットダウンする直前に Java ランタイム・パフォーマンス統計を含む SMF レコードをログに記録します。
HJV_JZOS_JVM_SMF_LOGGING_INTERVAL 環境変数を使用して、SMF レコードの定期的なロギングを有効にすることもできます。 もう 1 つの環境変数 HJV_JZOS_JVM_SMF_THREADSは、個々のスレッドの詳細をこれらの SMF レコードに含めるかどうかを制御します。 最後に、 HJV_JZOS_JVM_SMF_THREADS_NATIVE_ID 環境変数は、正しいネイティブ・オペレーティング・システム・スレッド ID 情報が個々のスレッド詳細セクションで割り当てられるかどうかを制御します。 これらの JZOS 環境変数の構成について詳しくは、 JZOS 環境変数を参照してください。
JZOS バッチ・ランチャーは、SMF レコード・タイプ 121 を使用して、Java ランタイム・パフォーマンス統計を記録します。 レコード・マッピングを以下の表に示します。
ヘッダー/自己定義セクション
このセクションには、レコード上の他のセクションを位置指定する共通 SMF レコード・ヘッダー・フィールドとトリプレット・フィールド (セクションまでのオフセット、セクションの長さ、またはセクションの数) が含まれます。
| オフセット (10 進数) | オフセット (16 進数) | 名前 | 長さ | フォーマット | 説明 |
|---|---|---|---|---|---|
| 0 | 0 | SMF121LEN |
2 | バイナリー | レコード長 (最大サイズ 32,756)。 このフィールドと次のフィールド (合計 4 バイト) は、レコード記述子ワード (RDW) を形成します。 最初の 2 バイト (このフィールド) には、RDW を含む論理レコード長が含まれている必要があります。 |
| 2 | 2 | SMF121SEG |
2 | バイナリー | SMF によって提供されるセグメント記述子。 ゼロで初期化します。 |
| 4 | 4 | SMF121FLG |
1 | バイナリー | システム標識。 設定された場合のビットの意味は、以下のとおりです。
|
| 5 | 5 | SMF121RTY |
1 | バイナリー | レコード・タイプ。 これは 10 進数の 121 でなければなりません。 |
| 6 | 6 | SMF121TME |
4 | バイナリー | レコードが SMF バッファーに移されたときの午前 0 時からの経過時間 (1/100 秒単位)。 |
| 10 | A | SMF121DTE |
4 | パック | レコードが SMF バッファーに移動された日付 (00yydddF または 0cyydddF の形式)。 この形式では、 c は、19xx の場合は 0、20xxの場合は 1、 yy は現在の年 (0 から 99)、 ddd は現在日 (1 から 366)、 F は符号) です。 |
| 14 | E | SMF121SID |
4 | EBCDIC | システム識別。 |
| 18 | 12 | SMF121SSI |
4 | EBCDIC | サブシステム ID。 |
| 22 | 16 | SMF121STY |
2 | バイナリー | レコード・サブタイプ。 これは 1 桁の 10 進数でなければなりません。 |
| 24 | 18 | SMF121SDS_TRIPLETS |
2 | バイナリー | トリプレットの数 (オフセット/長さ/数の組み合わせ)。 バージョン1では、3つのトリプレットがある:
バージョン2では、3連符が4つある:
|
| 26 | 1A | SMF121SDS_RSERVD |
2 | バイナリー | 次のフィールドのフルワード位置合わせのために予約されています。 |
| 28 | 1C | SMF121SDS_OFFJRS |
4 | バイナリー | Java ランタイム・セクションまでのオフセット。 |
| 32 | 20 | SMF121SDS_LENJRS |
2 | バイナリー | 各 Java ランタイム・セクションの長さ。 |
| 34 | 22 | SMF121SDS_NUMJRS |
2 | バイナリー | Java ランタイム・セクションの数。 Java ランタイム・セクションは 1 つのみにする必要があります。 |
| 36 | 24 | SMF121SDS_OFFGCS |
4 | バイナリー | ガーベッジ・コレクター・セクションまでのオフセット。 |
| 40 | 28 | SMF121SDS_LENGCS |
2 | バイナリー | 各ガーベッジ・コレクター・セクションの長さ。 |
| 42 | 2A | SMF121SDS_NUMGCS |
2 | バイナリー | ガーベッジ・コレクター・セクションの数。 これは、Java VM でアクティブになっているガーベッジ・コレクターの数によって異なります。 |
| 44 | 2C | SMF121SDS_OFFTS |
4 | バイナリー | スレッド・セクションまでのオフセット。 |
| 48 | 30 | SMF121SDS_LENTS |
2 | バイナリー | 各スレッド・セクションの長さ。 |
| 50 | 32 | SMF121SDS_NUMTS |
2 | バイナリー | スレッド・セクションの数。 この数は、アクティブな Java スレッドの数によって異なります。 |
| 52 | 34 | 0 | SMF121_1_Header_version 1 終了 | ||
| 52 | 34 | SMF121SDS_OFFJOB | 4 | バイナリー | JESジョブセクションへのオフセット![]() |
| 56 | 38 | SMF121SDS_LENJOB | 2 | バイナリー | JESジョブセクションの長さ |
| 58 | 3A | SMF121SDS_NUMJOB | 2 | バイナリー | JESのジョブセクションの番号。 なお、JESのジョブセクションは1つしかない。 |
| 60 | 3C | 0 | SMF121_1_Header_version 2終了 |
Java ランタイム・セクション
トリプレット情報: このセクションは、 ヘッダー/自己定義セクションにある以下のトリプレット・フィールドを使用してレコード上に配置されます。
| オフセット (10 進数) | オフセット (16 進数) | 名前 | 長さ | フォーマット | 説明 |
|---|---|---|---|---|---|
| 0 | 0 | SMF121JRS_FDFLAGS |
4 | バイナリー | 新規フィールドの追加を示すフィールド・フラグ。 フラグ・バイト 1 が設定されるときのビットの意味は、次のとおりです。
|
| 4 | 4 | SMF121JRS_NAME |
80 | EBCDIC | 実行中の Java 仮想マシンを表すフォーマット済みの名前 ( pid@hostnameの形式)。 java.lang.management.RuntimeMXBean::getName()から取得されました。 名前が 80 文字より長い場合は、切り捨てられます。 |
| 84 | 54 | SMF121JRS_STRTTME |
8 | バイナリー | Java 仮想マシンが開始された概算時間 (ミリ秒)。 java.lang.management.RuntimeMXBean::getStartTime()から取得されました。 |
| 92 | 5C | SMF121JRS_UPTIME |
8 | バイナリー | Java 仮想マシンのアップタイム (ミリ秒)。 java.lang.management.RuntimeMXBean::getUptime()から取得されました。 |
| 100 | 64百万 | SMF121JRS_GCMODE |
40 | EBCDIC | 人間が理解できるストリングとしての現在のガーベッジ・コレクション・モード。 com.ibm.lang.management.MemoryMXBean::getGCMode()から取得されました。 ストリングが 40 文字より長い場合は、切り捨てられます。 |
| 140 | 8C | SMF121JRS_PEAKTHRD |
4 | バイナリー | Java 仮想マシンが開始されてからのピーク・ライブ・スレッド数、またはピーク・カウントがリセットされてからのピーク・ライブ・スレッド数。 java.lang.management.ThreadMXBean::getPeakThreadCount()から取得されました。 |
| 144 | 90 | SMF121JRS_CURRTHRD |
4 | バイナリー | デーモン・スレッドと非デーモン・スレッドの両方を含む、ライブ・スレッドの現在の数。 java.lang.management.ThreadMXBean::getThreadCount()から取得されました。 |
| 148 | 94 | SMF121JRS_APPCPU |
8 | バイナリー | すべてのアプリケーション・スレッドの合計 CPU 使用率 (マイクロ秒)。 com.ibm.lang.management.JvmCpuMonitorInfo::getApplicationCpuTime()から取得されました。 CPU 使用量情報が使用できない場合、このフィールドには -1が入ります。 |
| 156 | 9C | SMF121JRS_SYSCPU |
8 | バイナリー | すべてのシステム・スレッドの合計 CPU 使用率 (マイクロ秒)。これには、GC、JIT、およびその他の JVM デーモン・スレッドが含まれます。 com.ibm.lang.management.JvmCpuMonitorInfo::getSystemJvmCpuTime()から取得されました。 CPU 使用量情報が使用できない場合、このフィールドには -1が入ります。 |
| 164 | A4 | SMF121JRS_GCCPU |
8 | バイナリー | すべての GC スレッドの合計 CPU 使用率 (マイクロ秒)。 from
com.ibm.lang.management.JvmCpuMonitorInfo::getGcCpuTime()を取得しました。 CPU 使用量情報が使用できない場合、このフィールドには -1が入ります。 |
| 172 | AC | SMF121JRS_JITCPU |
8 | バイナリー | すべての JIT スレッドの合計 CPU 使用率 (マイクロ秒)。 from
com.ibm.lang.management.JvmCpuMonitorInfo::getJitCpuTime()を取得しました。 CPU 使用量情報が使用できない場合、このフィールドには -1が入ります。 |
ガーベッジ・コレクター・セクション
トリプレット情報: このセクションは、 ヘッダー/自己定義セクションにある以下のトリプレット・フィールドを使用してレコード上に配置されます。
| オフセット (10 進数) | オフセット (16 進数) | 名前 | 長さ | フォーマット | 説明 |
|---|---|---|---|---|---|
| 0 | 0 | SMF121GCS_FDFLAGS |
4 | バイナリー | 新規フィールドの追加を示すフィールド・フラグ。現在は、すべてゼロでなければなりません。 |
| 4 | 4 | SMF121GCS_NAME |
40 | EBCDIC | ガーベッジ・コレクター名。 com.ibm.lang.management.GarbageCollectorMXBean::getName()から取得されました。 名前が 40 文字より長い場合は、切り捨てられます。 |
| 44 | 2C | SMF121GCS_COLLCNT |
8 | バイナリー | 発生したコレクションの総数。 com.ibm.lang.management.GarbageCollectorMXBean::getCollectionCount()から取得されました。 |
| 52 | 34 | SMF121GCS_COLLTME |
8 | バイナリー | 概算の累積収集経過時間 (ミリ秒)。 com.ibm.lang.management.GarbageCollectorMXBean::getCollectionTime()から取得されました。 |
| 60 | 3C | SMF121GCS_TMEMFREED |
8 | バイナリー | ガーベッジ・コレクターによって解放されたメモリーの累積合計量 (バイト単位)。 com.ibm.lang.management.GarbageCollectorMXBean::getTotalMemoryFreed()から取得されました。 |
| 68 | 44 | SMF121GCS_TCOMPACTS |
8 | バイナリー | ガーベッジ・コレクターによって実行された圧縮の累積合計数。 com.ibm.lang.management.GarbageCollectorMXBean::getTotalCompacts()から取得されました。 |
| 76 | 4C | SMF121GCS_MEMUSED |
8 | バイナリー | この SMF レコードが記録される直前にガーベッジ・コレクターが管理するオブジェクトによって使用されるヒープ・メモリーの量のスナップショット。 com.ibm.lang.management.GarbageCollectorMXBean::getMemoryUsed()から取得されました。 |
スレッド・セクション
トリプレット情報: このセクションは、 ヘッダー/自己定義セクションにある以下のトリプレット・フィールドを使用してレコード上に配置されます。
| オフセット (10 進数) | オフセット (16 進数) | 名前 | 長さ | フォーマット | 説明 |
|---|---|---|---|---|---|
| 0 | 0 | SMF121TS_FDFLAGS |
4 | バイナリー | 新規フィールドの追加を示すフィールド・フラグ。現在は、すべてゼロでなければなりません。 |
| 4 | 4 | SMF121TS_ID |
8 | バイナリー | Java スレッド ID。 java.lang.management.ThreadInfo::getThreadId()から取得されました。 |
| 12 | C | SMF121TS_NAME |
24 | EBCDIC | Java スレッド名。 java.lang.management.ThreadInfo::getThreadName()から取得されました。 名前が 24 文字より長い場合は、切り捨てられます。 |
| 36 | 24 | SMF121TS_CAT |
8 | EBCDIC | スレッド・カテゴリー。 com.ibm.lang.management.JvmCpuMonitorMXBean::getThreadCategory(long)から取得されました。 可能なスレッド・カテゴリーは、APP、 APP-U1、 APP-U2、 APP-U3、 APP-U4、 APP-U5、SYS、GC、JIT です。 OTHER、RM。 スレッド・カテゴリー情報が使用できない場合、このフィールドには空ストリングが入ります。 |
| 44 | 2C | SMF121TS_CPU |
8 | バイナリー | 合計 CPU 使用時間。 このフィールドの精度はナノ秒ですが、ナノ秒精度ではない可能性があります。 java.lang.management.ThreadMXBean::getThreadCpuTime(long)から取得されました。 CPU 使用量情報が使用できない場合、このフィールドには -1が入ります。 |
| 52 | 34 | SMF121TS_NATIVEID |
8 | バイナリー | 対応するネイティブ OS スレッド ID。 この情報が使用できない場合、フィールドには -1が入ります。 |
JCLジョブセクション
トリプレット情報: このセクションは、 ヘッダー/自己定義セクションにある以下のトリプレット・フィールドを使用してレコード上に配置されます。
| オフセット (10 進数) | オフセット (16 進数) | 名前 | 長さ | フォーマット | 説明 |
|---|---|---|---|---|---|
| 0 | 0 | SMF121JOB_JOBNAME | 8 | EBCDIC | ジョブ名 |
| 8 | 8 | SMF121JOB_JOBID | 8 | EBCDIC | ジョブ ID |
| 16 | 10 | SMF121JOB_STEPNAME | 8 | EBCDIC | Job Step Name |
| 24 | 18 | SMF121JOB_STEPNUM | 1 | バイナリー | ジョブ・ステップ番号 |
| 25 GB | 19 | SMF121JOB_JOBCORR | 64百万 | EBCDIC | JESジョブ相関器 |
| 89 | 59 | SMF121JOB_JOBENTRY | 4 | バイナリー | JESリーダー入力時間(1/100'S秒 |
| 93 | 5D | SMF121JOB_JOBEDATE | 4 | バイナリー | JES読者エントリー日 0CYYDDDF |