ページの先頭行へ戻る
Interstage Application Server/Interstage Web Server チューニングガイド

7.2.4 ガーベジコレクション処理の結果ログ出力機能の強化

  FJVMでは、“-verbose:gc”オプション指定時にガーベジコレクション(GC)処理の結果ログを出力する「ガーベジコレクション処理の結果ログ出力機能」の強化を行っています。

  “-verbose:gc”オプションを指定してGC処理の結果ログを出力する際、図1のオプションを追加指定することにより、GC処理の結果ログとして出力される情報が、図2に示す形式に拡張されます。また、図3に出力例を示します。

図1 GC処理の結果ログとして出力される情報を拡張するオプション

-XX:+UseFJverbose

図2 GC処理の結果ログとして出力される情報の拡張形式

$1: [$2, [$3 : $4->$5($6)], [$7 : $8->$9($10)] $11->$12($13), [$14 : $15->$16($17)], $18 secs]

  図2の各要素について、以下で説明します。

$1: 経過時間

GC処理の実行開始時間をJava VMが起動されてからの経過時間(秒)で示します。

$2: GC種別

実行したGC処理の種別を以下の名称で示します。

$3: New世代領域の識別名

New世代領域の識別名を示します。
使用されているGC処理の違いにより、以下の識別名が出力されます。

$4: GC処理前のオブジェクト量(New世代領域)

GC処理実行前のNew世代領域に存在したオブジェクトの総量(バイト)です。

$5: GC処理後のオブジェクト量(New世代領域)

GC処理実行後のNew世代領域に存在するオブジェクトの総量(バイト)です。

$6: New世代領域の大きさ

New世代領域の大きさ(バイト)です。
)使用されているGC処理がシリアルGCまたはパラレルGCの場合は、この大きさに「to space」領域の大きさが含まれません。
(シリアル
GCまたはパラレルGCの場合、GC処理はNew世代領域を「eden space」、from space」および「to space」の3つの内部領域に細分割して制御しています。)

$7: Old世代領域の識別名

Old世代領域の識別名を示します。
使用されているGC処理の違いにより、以下の識別名が出力されます。

$8: GC処理前のオブジェクト量(Old世代領域)

GC処理実行前のOld世代領域に存在したオブジェクトの総量(バイト)です。

$9: GC処理後のオブジェクト量(Old世代領域)

GC処理実行後のOld世代領域に存在するオブジェクトの総量(バイト)です。

$10: Old世代領域の大きさ

Old世代領域の大きさ(バイト)です。

$11: GC処理前のオブジェクト量(メモリ割り当てプール)

GC処理実行前のメモリ割り当てプールに存在したオブジェクトの総量(バイト)です。
$4+$8の値です。

$12: GC処理後のオブジェクト量(メモリ割り当てプール)

GC処理実行後のメモリ割り当てプールに存在するオブジェクトの総量(バイト)です。
$5+$9の値です。

$13: メモリ割り当てプールの大きさ

メモリ割り当てプールの大きさ(バイト)です。
$6+$10の値です。
)使用されているGC処理がシリアルGCまたはパラレルGCの場合は、この大きさにNew世代領域の「to space」領域の大きさが含まれません。
(シリアル
GCまたはパラレルGCの場合、GC処理はNew世代領域を「eden space」、from space」および「to space」の3つの内部領域に細分割して制御しています。)

$14: Permanent世代領域の識別名

Permanent世代領域の識別名です。
使用されているGC処理の違いにより、以下の識別名が出力されます。

$15: GC処理前のオブジェクト量(Permanent世代領域)

GC処理実行前のPermanent世代領域に存在したオブジェクトの総量(バイト)です。

$16: GC処理後のオブジェクト量(Permanent世代領域)

GC処理実行後のPermanent世代領域に存在するオブジェクトの総量(バイト)です。

$17: Permanent世代領域の大きさ

Permanent世代領域の大きさ(バイト)です。

$18: GC処理実行時間

GC処理実行に要した時間(秒)です。

  $2、$11、$12、$13、および$18に対する出力情報は、GC処理の結果ログ出力機能として“-verbose:gc”オプションだけを指定した際に出力される情報と対応します。

有効なGC処理

  このオプション指定により出力形式が拡張されるのは、使用するGC処理が以下の場合です。

クラスのアンロード情報

  Javaアプリケーションがクラスのアンローディング処理を行なっていた場合には、FullGC処理中に該当するクラスのアンロード情報”[Unloading class アンロードされたクラス名]”が出力の途中に挿入される場合があります.

  ガーベジコレクション処理の結果ログに対するクラスのアンロード情報出力を抑止する場合は、次のオプションを指定してください。

GC処理の結果ログに対するクラスのアンロード情報出力を抑止するオプション

-XX:-ClassUnloadingInfo

ログ出力量の増加

  本オプションの指定により、ログ出力が増大します。
  本オプションを指定する場合は、ログ出力量についての注意が必要です。

■ ログの見方

  図3に、GC処理の結果ログとして出力される情報の拡張形式の出力例を示します。

図3 GC処理の結果ログとして出力される情報の拡張形式の出力例

1.495: [Full GC*, [SplitEden : 384K->0K(704K)], [Tenured : 47835K->32752K(47872K)] 48219K->32752K(48576K), [Perm : 4081K->4081K(16384K)], 0.6623532 secs]

  この出力情報から、以下のことが分かります。