7.6.1 -XX:[+|-]HitachiCommaVerboseGC
拡張verbosegc情報をCSV形式で出力します。
説明
拡張verbosegc情報をCSV形式で出力するかどうかを指定します。
- 前提オプション
-
-
-XX:+HitachiVerboseGC
-
- 出力形式(SerialGCの場合)
-
- -XX:-HitachiVerboseGCIntervalTimeオプション指定時の出力形式
-
id,date,full_count,copy_count,gc_kind,gc_info,gc_time,eden_info, survivor_info,tenured_info,metaspace_info,classspace_info,cause_info, user_cpu,system_cpu,jvm_alloc_size,mmap_total_size,malloc_total_size, thread_count,doe_alloc_size,called_count,cc_used_size,cc_max_size,cc_info
出力内容を次に説明します。
出力項目
出力内容
id
JavaVMログファイル識別子。
date
GC開始日時。-XX:-HitachiVerboseGCPrintDateオプションが指定された場合、出力されません。
full_count
FullGC情報出力をスキップした回数。
-XX:HitachiVerboseGCIntervalTimeオプションが指定された場合に出力されます。
copy_count
CopyGC情報出力をスキップした回数。
-XX:HitachiVerboseGCIntervalTimeオプションが指定された場合に出力されます。
gc_kind
GC種別。FullGCまたはGCが出力されます。
gc_info
GC情報。次の形式で出力されます。単位はキロバイトです。
GC前の領域長,GC後の領域長,領域サイズ
gc_time
GC経過時間。単位は秒です。
eden_info
Eden情報。次の形式で出力されます。単位はキロバイトです。
GC前の領域長,GC後の領域長,領域サイズ
survivor_info
Survivor情報。次の形式で出力されます。単位はキロバイトです。
GC前の領域長,GC後の領域長,領域サイズ
tenured_info
Tenured情報。次の形式で出力されます。単位はキロバイトです。
GC前の領域長,GC後の領域長,領域サイズ
metaspace_info
Metaspace情報。次の形式で出力されます。単位はキロバイトです。
GC前のMetaspace領域の使用サイズ,GC前のMetaspace領域のcapacityサイズ,GC前のMetaspace領域のcommitサイズ,GC後のMetaspace領域の使用サイズ,GC後のMetaspace領域のcapacityサイズ,GC後のMetaspace領域のcommitサイズ
classspace_info
Compressed Class Space情報。次の形式で出力されます。単位はキロバイトです。
GC前のCompressed Class Spaceの使用サイズ,GC前のCompressed Class Spaceのcapacityサイズ,GC前のCompressed Class Spaceのcommitサイズ,GC後のCompressed Class Spaceの使用サイズ,GC後のCompressed Class Spaceのcapacityサイズ,GC後のCompressed Class Spaceのcommitサイズ
圧縮オブジェクトポインター機能を使用していない場合、それぞれのサイズには0が出力されます。
cause_info
GC要因番号。
-XX:-HitachiVerboseGCPrintCauseオプションが指定された場合、出力されません。
user_cpu
GCスレッドがユーザーモードで費やしたCPU時間。単位は秒です。
CPU時間の取得に失敗した場合はunknownと表示されます。
-XX:-HitachiVerboseGCCpuTimeオプションが指定された場合、出力されません。
system_cpu
GCスレッドがカーネルモードで費やしたCPU時間。単位は秒です。
CPU時間の取得に失敗した場合はunknownと表示されます。
-XX:-HitachiVerboseGCCpuTimeオプションが指定された場合、出力されません。
jvm_alloc_size
JavaVM内部で管理している領域のうち、現在使用中の領域のサイズ(mmap_total_sizeとmalloc_total_sizeの合計サイズのうち、現在使用中の領域のサイズ)。単位はキロバイトです。
-XX:-HitachiVerboseGCPrintJVMInternalMemoryオプションが指定された場合、出力されません。
mmap_total_size
JavaVM内部で管理している領域のうち、VirtualAllocで割り当てたCヒープの総サイズ。単位はキロバイトです。
-XX:-HitachiVerboseGCPrintJVMInternalMemoryオプションが指定された場合、出力されません。
malloc_total_size
JavaVM内部で管理している領域のうち、mallocで割り当てたCヒープ総サイズ。単位はキロバイトです。
-XX:-HitachiVerboseGCPrintJVMInternalMemoryオプションが指定された場合、出力されません。
thread_count
Javaスレッドの数。
-XX:-HitachiVerboseGCPrintThreadCountオプションが指定された場合、出力されません。
doe_alloc_size
java.io.File.deleteOnExit()を呼び出して確保した累積のヒープサイズ。単位はキロバイトです。
-XX:-HitachiVerboseGCPrintDeleteOnExitオプションが指定された場合、出力されません。
called_count
java.io.File.deleteOnExit()の呼び出し回数。
-XX:-HitachiVerboseGCPrintDeleteOnExitが指定された場合、出力されません。
cc_used_size
GC発生時のコードキャッシュ領域の使用サイズ。単位はキロバイトです。
-XX:-PrintCodeCacheInfoオプションが指定された場合、出力されません。
cc_max_size
コードキャッシュ領域の最大サイズ。単位はキロバイトです。
-XX:-PrintCodeCacheInfoオプションが指定された場合、出力されません。
cc_info
保守情報。
-XX:-PrintCodeCacheInfoオプションが指定された場合、出力されません。
- -XX:+HitachiVerboseGCPrintTenuringDistributionオプション指定時の出力形式
-
id, date, size, value, max_value, total_age1, total_age2, total_agen
出力内容を次に説明します。
出力項目
出力内容
id
PTD(JavaVMログファイル識別子)。
date
GC開始日時。
size
GC後のSurvivor領域内オブジェクト目標サイズ。
value
次のCopyGCでTenured領域に昇格するJavaオブジェクトの年齢のしきい値。
この値は、-XX:MaxTenuringThreshold=valueオプションと、Survivor領域のメモリーサイズ、および、-XX:TargetSurvivorRatio=valueオプションに設定した値を基に、CopyGCごとに動的に設定されます。
value値以上の年齢のJavaオブジェクトが、次のCopyGCでTenured領域に昇格します。
max_value
CopyGCでTenured領域に昇格するJavaオブジェクトの年齢のしきい値(value値)の最大値(MaxTenuringThresholdオプションの指定値)。
value値は、CopyGCごとに動的に設定されますが、max_value値を超えることはありません。
また、年齢がmax_value値以上のJavaオブジェクトは、次のCopyGCで、必ず、Tenured領域に昇格します。
total_age1
1歳のオブジェクトのバイト数の合計。
total_age2
1歳から2歳までのオブジェクトのバイト数の合計。
total_agen
1歳からn歳までのオブジェクトのバイト数の合計。
nがmax_valueに近ければ寿命の長いオブジェクトが存在するということになります。
- 出力形式(G1GCの場合)
-
JavaVMログファイルには、GCに関するログとConcurrent Markingに関するログが出力されます。Concurrent Markingは、アプリケーションと並行で処理を実行するため、1回のConcurrent Markingに関するログは複数行に分かれて出力されます。
- GCに関するログの出力形式
-
id,date,gc_kind,gc_info,gc_time,gc_status,eden_info,survivor_info,tenured_info, humongous_info,free_info,metaspace_info,classspace_info,cause_info, region_size,target_time,predicted_time,target_size,reclaimable_info,user_cpu, system_cpu,jvm_alloc_size,mmap_total_size,malloc_total_size,thread_count, doe_alloc_size,called_count,cc_used_size,cc_max_size,cc_info
- Concurrent Markingに関するログの出力形式
-
id,date,cm_event,user_cpu,sys_spu
出力内容を次に説明します。
分類
出力項目
出力内容
GCに関するログ
id
VG1(JavaVMログファイル識別子)。
date
GCの 開始日時。
-XX:-HitachiVerboseGCPrintDateオプションが指定された場合、出力されません。
gc_kind
GCまたはConcurrent Markingの種別。"FullGC"、"Mixed GC"、"Young GC"、"Young GC(initial-mark)"、"CM Remark"、"CM Cleanup"が出力されます。
gc_info
Java ヒープ領域のメモリー情報 。次の形式で出力されます。単位はキロバイトです。
GC前のJavaヒープ領域の使用サイズ,GC前のJavaヒープ領域の使用サイズ※,GC前のJavaヒープ領域の領域サイズ※,GC後のJavaヒープ領域の使用サイズ,GC後のJavaヒープ領域の使用サイズ※,GC後のJavaヒープ領域の領域サイズ※
gc_time
GCによるアプリケーション停止時間 。単位は秒です。
gc_status
GCの状態。
-
To 空間あふれが発生した場合、"to exhausted"が出力されます。
-
上記以外の場合、"-"が出力されます。
GCの種別ごとに、出力されるGCの状態を次に示します。
-
gc_kindが"Young GC"、"Young GC(initial-mark)"または"Mixed GC"の場合
"-"または"to exhausted"が出力されます。
-
gc_kindが上記以外の場合
"-"が出力されます。
eden_info
Eden 領域のメモリー情報。 次の形式で出力されます。単位はキロバイトです。
GC前のEden領域の使用サイズ※,GC前のEden領域が取得できる最大の領域サイズ※,GC後のEden領域の使用サイズ※,GC後のEden領域が取得できる最大の領域サイズ※
Eden領域が取得できる最大の領域サイズは、「New領域の領域サイズ-Survivor領域の使用サイズ」を指します。
survivor_info
Survivor領域のメモリー情報。次の形式で出力されます。単位はキロバイトです。
GC前のSurvivor領域の使用サイズ※,GC後のSurvivor領域の使用サイズ※
tenured_info
Tenured領域のメモリー情報。次の形式で出力されます。単位はキロバイトです。
GC前のTenured領域の使用サイズ※,GC後のTenured領域の使用サイズ※
humongous_info
Humongous領域のメモリー情報。次の形式で出力されます。単位はキロバイトです。
GC前のHumongous領域の使用サイズ※,GC後のHumongous領域の使用サイズ※
free_info
Free領域のメモリー情報。次の形式で出力されます。単位はキロバイトです。
GC前のFree領域の使用サイズ※,GC後のFree領域の使用サイズ※
metaspace_info
Metaspace情報。次の形式で出力されます。単位はキロバイトです。
GC前のMetaspace領域の使用サイズ,GC前のMetaspace領域のcapacityサイズ,GC前のMetaspace領域のcommitサイズ,GC後のMetaspace領域の使用サイズ,GC後のMetaspace領域のcapacityサイズ,GC後のMetaspace領域のcommitサイズ
classspace_info
Compressed Class Space情報。次の形式で出力されます。単位はキロバイトです。
GC前のCompressed Class Spaceの使用サイズ,GC前のCompressed Class Spaceのcapacityサイズ,GC前のCompressed Class Spaceのcommitサイズ,GC後のCompressed Class Spaceの使用サイズ,GC後のCompressed Class Spaceのcapacityサイズ,GC後のCompressed Class Spaceのcommitサイズ
圧縮オブジェクトポインター機能を使用していない場合、それぞれのサイズには0が出力されます。
cause_info
GC要因番号。
-XX:-HitachiVerboseGCPrintCauseオプションが指定された場合、出力されません。
region_size
1リージョンのサイズ。単位はキロバイトです。
target_time
GCによるアプリケーション停止時間の目標時間。単位は秒です。
目標時間は、-XX:+ MaxGCPauseMillisオプションで指定できます。
predicted_time
JavaVMが予測したGCによるアプリケーション停止時間。単位は秒です。
GCの種別が"Full GC"、"CM Remark"または"CM Cleanup"の場合、JavaVMは予測しないため、0が出力されます。
target_size
Mixed GCでGC対象となったTenured領域のサイズ。単位はキロバイトです。
GCの種別が"Mixed GC"以外の場合、0が出力されます。
reclaimable_info
予測回収サイズ情報。次の形式で出力されます。
予測回収サイズ,予測回収率
予測回収サイズの単位はキロバイトです。予測回収率は小数点以下第2位までが出力されます。
なお、予測回収サイズ情報は、Concurrent Marking終了直後のYoung GCまたはMixed GCの場合に出力されます。ほかの場合、JavaVMは予測しないため、0が出力されます。
user_cpu
すべてのGCスレッドがユーザーモードで費やしたCPU時間の合計。単位は秒です。
CPU時間取得に失敗した場合、[User: unknown]のように、"unknown"と表示されます。
-XX:-HitachiVerboseGCCpuTimeオプションが指定された場合、出力されません。
system_cpu
すべてのGCスレッドがカーネルモードで費やしたCPU時間の合計。単位は秒です。
CPU時間取得に失敗した場合、[Sys: unknown]のように、"unknown"と表示されます。
-XX:-HitachiVerboseGCCpuTimeオプションが指定された場合、出力されません。
jvm_alloc_size
JavaVM内部で管理している領域のうち、現在使用中の領域のサイズ(mmap_total_sizeとmalloc_total_sizeの合計サイズのうち、現在使用中の領域のサイズ)。
-XX:-HitachiVerboseGCPrintJVMInternalMemoryオプションが指定された場合、出力されません。
mmap_total_size
JavaVM内部で管理している領域のうち、VirtualAllocで割り当てたCヒープの総サイズ。
-XX:-HitachiVerboseGCPrintJVMInternalMemoryオプションが指定された場合、出力されません。
malloc_total_size
JavaVM内部で管理している領域のうち、mallocで割り当てたCヒープの総サイズ。
-XX:-HitachiVerboseGCPrintJVMInternalMemoryオプションが指定された場合、出力されません。
thread_count
Javaスレッドの数。
-XX:-HitachiVerboseGCPrintThreadCountオプションが指定された場合、出力されません。
doe_alloc_size
java.io.File.deleteOnExit()を呼び出して確保した累積のヒープサイズ。
-XX:-HitachiVerboseGCPrintDeleteOnExitオプションが指定された場合、出力されません。
called_count
java.io.File.deleteOnExit()の呼び出し回数。
-XX:-HitachiVerboseGCPrintDeleteOnExitオプションが指定された場合、出力されません。
cc_used_size
GC発生時のコードキャッシュ領域の使用サイズ。単位はキロバイトです。
-XX:-PrintCodeCacheInfoオプションが指定された場合、出力されません。
cc_max_size
コードキャッシュ領域の最大サイズ。単位はキロバイトです。
-XX:-PrintCodeCacheInfoオプションが指定された場合、出力されません。
cc_info
保守情報。
-XX:-PrintCodeCacheInfoオプションが指定された場合、出力されません。
Concurrent Markingに関するログ
id
VCM(JavaVMログファイル識別子)。
date
Concurrent Marking開始日時。
-XX:-HitachiVerboseGCPrintDateオプションが指定された場合、出力されません。
cm_event
Concurrent Markingの状態。
-
Concurrent Root Region Scan Start
Concurrent Root Region Scanが開始されました。
-
Concurrent Root Region Scan End
Concurrent Root Region Scanが終了しました。
-
Concurrent Mark Start
Concurrent Markが開始されました。
-
Concurrent Mark End
Concurrent Markが終了しました。
-
Concurrent Mark Stop
Concurrent Markを中止しました。
-
Concurrent Cleanup Start
Concurrent Cleanupが開始されました。
-
Concurrent Cleanup End
Concurrent Cleanupが終了しました。
user_cpu
すべてのGCスレッドがユーザーモードで費やしたCPU時間の合計。単位は秒です。
CPU時間取得に失敗した場合、[User: unknown]のように、"unknown"と表示されます。
-XX:-HitachiVerboseGCCpuTimeオプションが指定された場合、出力されません。
Concurrent Markingの状態が"Concurrent Mark Start"の場合、0が出力されます。
sys_cpu
すべてのGCスレッドがカーネルモードで費やしたCPU時間の合計。単位は秒です。
CPU時間取得に失敗した場合、[Sys: unknown]のように、"unknown"と表示されます。
-XX:-HitachiVerboseGCCpuTimeオプションが指定された場合、出力されません。
Concurrent Markingの状態が"Concurrent Mark Start"の場合、0が出力されます。
- 注※
-
サイズは、 領域のサイズを1リージョンのサイズで切り上げ、1リージョンのサイズの倍数で表した値となります。
cause_infoに出力されるGC要因番号を次に示します。
要因番号 |
要因内容 |
説明 |
GCの種類 |
|
---|---|---|---|---|
G1GC以外 |
G1GC |
|||
0 |
ObjAllocFail |
オブジェクトの領域確保失敗によってGCが発生しました。 |
○ |
○ |
1 |
System.gc |
java.lang.System.gcメソッド呼び出しによってGCが発生しました。 |
○ |
○ |
3 |
DelayedGC |
JNIやJVMTIによって保留されていたGCが起動されました。 |
○ |
○ |
4 |
JavaGCCommand |
javagcコマンドによってGCが発生しました。 |
○ |
○ |
6 |
JHeapProfCommand |
jheapprofコマンドによってGCが発生しました。 |
○ |
× |
8 |
EMReclaimFail |
Explicitメモリーの明示解放によるJavaヒープへのオブジェクト移動が発生してJavaヒープがあふれました。 |
○ |
× |
9 |
EMMigrateFail |
Explicitメモリーの自動解放によるJavaヒープへのオブジェクト移動が発生してJavaヒープがあふれました。 |
○ |
× |
10 |
JVMTIForceGC |
JVMTI関数ForceGarbageCollection()によってGCが発生しました。 |
○ |
○ |
11 |
PromotionFail |
CopyGCの昇格失敗によってGCが発生しました。 |
○ |
× |
12 |
EMJavaGCCommand |
javagcコマンドによるExplicitメモリーブロックの解放によってGCが発生しました。 |
○ |
○ |
13 |
EHeapProfCommand |
eheapprofコマンドによってGCが発生しました。 |
○ |
○ |
14 |
G1HumAllocFail |
G1GC 使用時、Humongous用の領域確保のために GC が発生しました。 |
× |
○ |
15 |
G1EvacuationPause |
G1GC 使用時にエバキュエーションが発生しました。 |
× |
○ |
16 |
Concurrent Marking |
GC は発生していないが、アプリケーションを停止して実行するConcurrent Marking 処理をログに出力しました。 |
× |
○ |
17 |
EvacuationFail |
G1GC 使用時にエバキュエーションの 失敗による GC が発生しました。 |
× |
○ |
18 |
MetaspaceAllocFail |
Metaspaceの領域確保失敗によってGCが発生しました。 |
○ |
○ |
19 |
LastMetaspaceGC |
MetaspaceのOutOfMemoryを出す前の最後のGCが発生しました。 |
○ |
○ |
- (凡例)
-
○:出力します。
×:出力しません。
書式
-XX:[+|-]HitachiCommaVerboseGC
指定できる値
型:String
- -XX:+HitachiCommaVerboseGC
-
拡張verbosegc情報の出力を、CSVファイルで取得できるようにコンマ形式で出力します。
拡張verbosegc情報に出力される括弧(丸括弧()、角括弧[]、山括弧<>)およびコロン(:)をすべて削除し、コンマ(,)で区切った数値または文字列を出力します。
- -XX:-HitachiCommaVerboseGC
-
拡張verbosegc情報を通常形式で出力します。
デフォルト値
- 定義項目の省略
-
-XX:-HitachiCommaVerboseGC
出力例
- 出力例1
-
SerialGCの場合に-XX:HitachiVerboseGCIntervalTimeオプションが指定されているとき
VGC,Thu Oct 02 10:38:52.442 2014,1,0,0,Full GC,770,682,8064,0.0040002,88,0,2304, 0,0,256,681,682,5504,3634,3634,4492,3634,3634,4492,356,356,388,356,356,388,1,0. 0000000,0.0000000,11913,12448,0,22,0,0,1173,245760,2496
- 出力例2
-
SerialGCの場合に-XX:+HitachiVerboseGCPrintTenuringDistributionオプションが指定されているとき
PTD,Wed May 28 11:45:23 2008,5467547,30,31,1357527,1539661
- 出力例3
-
G1GCの場合
-
GCに関するログ
VG1,Thu Oct 02 10:38:54.920 2014,Full GC,753,2048,8192,678,1024,8192,0.0064767, -,1024,2048,0,2048,0,0,1024,1024,0,0,6144,7168,3634,3634,4492,3634,3634,4492, 356,356,388,356,356,388,1,1024,0.2000000,0.0000000,0,0,0.00,0.0000000, 0.0000000,20459,21920,0,35,0,0,1171,245760,2496
-
Concurrent Markingに関するログ
VCM,Fri Jul 26 21:35:50 2013,Concurrent Mark Start,0.0000000,0.0000000 VCM,Fri Jul 26 21:35:50 2013,Concurrent Mark End,0.0124532,0.0245698
-