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 レコード・ヘッダー・フィールドとトリプレット・フィールド (セクションまでのオフセット、セクションの長さ、またはセクションの数) が含まれます。

表 1. SMF レコードのヘッダー/自己定義セクション用のレコード・マッピング
オフセット (10 進数) オフセット (16 進数) 名前 長さ フォーマット 説明
0 0 SMF121LEN 2 バイナリー レコード長 (最大サイズ 32,756)。 このフィールドと次のフィールド (合計 4 バイト) は、レコード記述子ワード (RDW) を形成します。 最初の 2 バイト (このフィールド) には、RDW を含む論理レコード長が含まれている必要があります。
2 2 SMF121SEG 2 バイナリー SMF によって提供されるセグメント記述子。 ゼロで初期化します。
4 4 SMF121FLG 1 バイナリー システム標識。 設定された場合のビットの意味は、以下のとおりです。
  1. 0: 予約済み
  2. 1: サブタイプは有効です
  3. 2: 予約済み
  4. 3: MVS /SP バージョン4以降。 ビット 3、4、5、および 6 がオンです。 製品 MVS レベルを取得するには、レコードタイプ30を使用することが推奨されます。
  5. 4: MVS /SP バージョン3. ビット 4、5、および 6 がオン
  6. 5: MVS /SP バージョン2. ビット 5 および 6 がオン
  7. 6: VS2. ビット 6 がオン
  8. 7: 予約済み
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つのトリプレットがある:

  • Java ランタイム
  • ガーベッジ・コレクター
  • スレッド

バージョン2では、3連符が4つある:

  • Java ランタイム
  • ガーベッジ・コレクター
  • スレッド
  • JES 求人情報
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 バイナリー 変更の開始 11.0.27.0JESジョブセクションへのオフセット変更の終わり 11.0.27.0
56   38 SMF121SDS_LENJOB 2 バイナリー JESジョブセクションの長さ
58 3A SMF121SDS_NUMJOB 2 バイナリー JESのジョブセクションの番号。 なお、JESのジョブセクションは1つしかない。
60 3C   0   SMF121_1_Header_version 2終了

Java ランタイム・セクション

トリプレット情報: このセクションは、 ヘッダー/自己定義セクションにある以下のトリプレット・フィールドを使用してレコード上に配置されます。

表 2. SMF レコードの Java ランタイム・セクションのレコード・マッピング
オフセット (10 進数) オフセット (16 進数) 名前 長さ フォーマット 説明
0 0 SMF121JRS_FDFLAGS 4 バイナリー 新規フィールドの追加を示すフィールド・フラグ。 フラグ・バイト 1 が設定されるときのビットの意味は、次のとおりです。
  • 0: CPU 使用率の要約フィールドが含まれます。 フィールドには、 SMF121JRS_APPCPU、 SMF121JRS_SYSCPU、 SMF121JRS_GCCPU、および SMF121JRS_JITCPUが含まれる。
  • 1-7: 予約済み
フラグ・バイト 2、3、および 4 は予約済みです。
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が入ります。

ガーベッジ・コレクター・セクション

トリプレット情報: このセクションは、 ヘッダー/自己定義セクションにある以下のトリプレット・フィールドを使用してレコード上に配置されます。

表 3. SMF レコードのガーベッジ・コレクター・セクションのレコード・マッピング
オフセット (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()から取得されました。

スレッド・セクション

トリプレット情報: このセクションは、 ヘッダー/自己定義セクションにある以下のトリプレット・フィールドを使用してレコード上に配置されます。

表 4。 SMF レコードのスレッド・セクションのレコード・マッピング
オフセット (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が入ります。

変更の開始 11.0.27.0JCLジョブセクション変更の終わり 11.0.27.0

トリプレット情報: このセクションは、 ヘッダー/自己定義セクションにある以下のトリプレット・フィールドを使用してレコード上に配置されます。

表 5. SMFレコードの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