Hitachi

 Hitachi Application Server V10 定義リファレンスWindows®用)


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_sizemalloc_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_sizemalloc_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要因番号を次に示します。

表7‒3 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