7.10.2 FullGC発生時の拡張verbosegc情報の出力例
ここでは,FullGCの発生時の拡張verbosegc情報の出力例を示します。
- 〈この項の構成〉
-
-
(1) New領域(Eden領域とSurvivor領域の合計)で使用しているメモリサイズがTenured領域の最大値に対する未使用メモリサイズを上回った場合
-
(2) CopyGCの実施の結果,New領域(Eden領域とSurvivor領域の合計)からTenured領域へのオブジェクトの移動に失敗した場合
-
(3) アロケーションしたいメモリサイズ(newで作成するJavaオブジェクトのサイズ)がTenured領域の未使用メモリサイズを上回る場合
-
(5) CopyGC実施時のTenured領域へのオブジェクトの移動によって,確保済みTenured領域の拡張が発生した場合
-
(7) Metaspace領域にアロケーションしたいメモリサイズが確保済みMetaspace領域の未使用メモリサイズを上回る場合
-
(1) New領域(Eden領域とSurvivor領域の合計)で使用しているメモリサイズがTenured領域の最大値に対する未使用メモリサイズを上回った場合
拡張verbosegc情報の出力例を次に示します。背景色付きの太字の部分がFullGC発生の要因を示す個所です。
… [VGC]<Wed May 11 23:12:05 2005>[GC 27340K->27340K(32704K), 0.0432900 secs][DefNew::Eden: 3440K->0K(3456K)][DefNew::Survivor: 58K->58K(64K)][Tenured: 23841K->27282K(29184K)][Metaspace: 3634K(4492K, 4492K)->3634K(4492K, 4492K)][class space: 356K(388K, 388K)->356K(388K, 388K)][cause:ObjAllocFail][User: 0.0156250 secs][Sys: 0.0312500 secs] [VGC]<Wed May 11 23:12:05 2005>[Full GC 30780K->30780K(32704K), 0.2070500 secs][DefNew::Eden: 3440K->1602K(3456K)][DefNew::Survivor: 58K->0K(64K)][Tenured: 27282K->29178K(29184K)][Metaspace: 3634K(4492K, 4492K)->3634K(4492K, 4492K)][class space: 356K(388K, 388K)->356K(388K, 388K)][cause:ObjAllocFail][User: 0.0156250 secs][Sys: 0.0312500 secs] …
この出力例からは,次のことがわかります。
-
New領域で使用しているメモリサイズ(3440K+58K=3498K)が,Tenured領域の最大値に対する未使用メモリサイズ(29184K-27282K=1902K)を上回りました。
-
FullGCの要因は,オブジェクトの割り付け失敗です。
(2) CopyGCの実施の結果,New領域(Eden領域とSurvivor領域の合計)からTenured領域へのオブジェクトの移動に失敗した場合
拡張verbosegc情報の出力例を次に示します。背景色付きの太字の部分がFullGC発生の要因を示す個所です。
… [VGC]<Thu Oct 20 11:04:42 2011>[GC 26418K->26418K (29696K), 0.0000000 secs][DefNew::Eden:8188K->8188K(8192K)][DefNew::Survivor: 1021K->1021K(1024K)][Tenured:17208K->17208K (20480K)][Metaspace: 3634K(4492K, 4492K)->3634K(4492K, 4492K)][class space: 356K(388K, 388K)->356K(388K, 388K)][cause:ObjAllocFail][User: 0.0000000 secs][Sys: 0.0000000 secs][IM: 877K, 1104K, 0K][TC: 9][DOE: 0K, 0] [VGC]<Thu Oct 20 11:04:42 2011>[Full GC 26418K->6450K(29696K), 0.0156250 secs][DefNew::Eden:8188K->0K(8192K)][DefNew::Survivor:1021K->0K(1024K)][Tenured:17208K->6450K(20480K)][Metaspace: 3634K(4492K, 4492K)->3634K(4492K, 4492K)][class space: 356K(388K, 388K)->356K(388K, 388K)][cause:PromotionFail][User: 0.0156250 secs][Sys: 0.0000000 secs][IM: 925K, 1104K, 0K][TC: 9][DOE: 0K, 0]
この出力例からは,次のことがわかります。
-
FullGCの要因は,CopyGCによる,New領域からTenured領域へのオブジェクトの移動の失敗です。
(3) アロケーションしたいメモリサイズ(newで作成するJavaオブジェクトのサイズ)がTenured領域の未使用メモリサイズを上回る場合
拡張verbosegc情報の出力例を次に示します。背景色付きの太字の部分がFullGC発生の要因を示す個所です。
… [VGC]<Wed May 11 23:53:18 2005>[GC 28499K->28490K(32704K), 0.0540590 secs][DefNew::Eden: 808K->0K(3456K)][DefNew::Survivor: 64K->62K(64K)][Tenured: 27626K->28428K(29184K)][Metaspace: 3634K(4492K, 4492K)->3634K(4492K, 4492K)][class space: 356K(388K, 388K)->356K(388K, 388K)][cause:ObjAllocFail][User: 0.0156250 secs][Sys: 0.0312500 secs] [VGC]<Wed May 11 23:53:18 2005>[Full GC 28490K->8959K(32704K), 0.1510380 secs][DefNew::Eden: 0K->0K(3456K)][DefNew::Survivor: 62K->0K(64K)][Tenured: 28428K->8959K(29184K)][Metaspace: 3634K(4492K, 4492K)->3634K(4492K, 4492K)][class space: 356K(388K, 388K)->356K(388K, 388K)][cause:ObjAllocFail][User: 0.0156250 secs][Sys: 0.0312500 secs] …
この出力例からは,次のことがわかります。
-
Tenured領域の未使用メモリサイズ(29184K-28428K=756K)を上回るメモリサイズのJavaオブジェクトを,newで作成しようとしました。
-
FullGCの要因は,オブジェクトの割り付け失敗です。
(4) CopyGC実施の結果,確保済みTenured領域の未使用メモリサイズが10,000バイトを下回った場合
拡張verbosegc情報の出力例を次に示します。背景色付きの太字の部分がFullGC発生の要因を示す個所です。
… [VGC]<Fri May 25 15:21:33 2007>[GC 15436K->15416K(19840K), 0.0111825 secs][DefNew::Eden: 4413K->0K(4416K)][DefNew::Survivor: 512K->509K(512K)][Tenured: 10511K->14906K(14912K)][Metaspace: 3634K(4492K, 4492K)->3634K(4492K, 4492K)][class space: 356K(388K, 388K)->356K(388K, 388K)][cause:ObjAllocFail][User: 0.0000000 secs][Sys: 0.0000000 secs] [VGC]<Fri May 25 15:21:33 2007>[Full GC 15416K->8622K(19840K), 0.0284614 secs][DefNew::Eden: 0K->0K(4416K)][DefNew::Survivor: 509K->0K(512K)][Tenured: 14906K->8622K(14912K)][Metaspace: 3634K(4492K, 4492K)->3634K(4492K, 4492K)][class space: 356K(388K, 388K)->356K(388K, 388K)][cause:ObjAllocFail][User: 0.0312500 secs][Sys: 0.0000000 secs] …
この出力例からは,次のことがわかります。
-
1行目のCopyGCでNew領域からTenured領域にオブジェクトが移動したことによって,Tenured領域の使用済みメモリサイズが10,511キロバイトから14,906キロバイトに増加しました。これによって,確保済みTenured領域の未使用メモリサイズが14,912キロバイト-14,906キロバイト=6キロバイトとなり,10,000バイト(約10キロバイト)を下回りました。
-
1行目のCopyGCの原因は,オブジェクトの割り付け失敗です。1行目のCopyGCと2行目のFullGCは,Javaプログラムに制御が戻る前に連続して発生します。
(5) CopyGC実施時のTenured領域へのオブジェクトの移動によって,確保済みTenured領域の拡張が発生した場合
拡張verbosegc情報の出力例を次に示します。背景色付きの太字の部分がFullGC発生の要因を示す個所です。
… [VGC]<Fri May 25 15:42:00 2007>[GC 12745K->10151K(15872K), 0.0048346 secs][DefNew::Eden: 4416K->0K(4416K)][DefNew::Survivor: 137K->512K(512K)][Tenured: 8192K->9639K(10944K)][Metaspace: 3634K(4492K, 4492K)->3634K(4492K, 4492K)][class space: 356K(388K, 388K)->356K(388K, 388K)][cause:ObjAllocFail][User: 0.0156250 secs][Sys: 0.0000000 secs] [VGC]<Fri May 25 15:42:00 2007>[GC 14563K->14536K(19072K), 0.0104957 secs][DefNew::Eden: 4412K->0K(4416K)][DefNew::Survivor: 512K->510K(512K)][Tenured: 9639K->14026K(14144K)][Metaspace: 3634K(4492K, 4492K)->3634K(4492K, 4492K)][class space: 356K(388K, 388K)->356K(388K, 388K)][cause:ObjAllocFail][User: 0.0156250 secs][Sys: 0.0000000 secs] [VGC]<Fri May 25 15:42:00 2007>[Full GC 14536K->8610K(19072K), 0.0287254 secs][DefNew::Eden: 0K->0K(4416K)][DefNew::Survivor: 510K->0K(512K)][Tenured: 14026K->8610K(14144K)][Metaspace: 3634K(4492K, 4492K)->3634K(4492K, 4492K)][class space: 356K(388K, 388K)->356K(388K, 388K)][cause:ObjAllocFail][User: 0.0312500 secs][Sys: 0.0000000 secs] …
この出力例からは,次のことがわかります。
-
2行目のCopyGCでNew領域からTenured領域へのオブジェクトが移動したことによって,Tenured領域が最低でも14,026キロバイト以上必要になりました。このため,確保済みTenured領域サイズが10,944キロバイトから14,144キロバイトに拡張されました。
-
2行目のCopyGCの原因は,オブジェクトの割り付け失敗です。2行目のCopyGCと3行目のFullGCは,Javaプログラムに制御が戻る前に連続して発生します。
(6) アプリケーション内でjava.lang.System.gc()メソッドが実行された場合
拡張verbosegc情報の出力例を次に示します。背景色付きの太字の部分がFullGC発生の要因を示す個所です。
… [VGC]<Mon Apr 18 20:36:29 2005>[Full GC 330K->150K(3520K), 0.0387690 secs][DefNew::Eden: 330K->0K(2048K)][DefNew::Survivor: 0K->0K(64K)][Tenured: 0K->150K(1408K)][Metaspace: 3634K(4492K, 4492K)->3634K(4492K, 4492K)][class space: 356K(388K, 388K)->356K(388K, 388K)][cause:System.gc][User: 0.0156250 secs][Sys: 0.0312500 secs] …
この出力例からは,次のことがわかります。
-
FullGCの要因は,J2EEアプリケーション内またはバッチアプリケーション内でのjava.lang.System.gc()メソッド呼び出しです。
(7) Metaspace領域にアロケーションしたいメモリサイズが確保済みMetaspace領域の未使用メモリサイズを上回る場合
拡張verbosegc情報の出力例を次に示します。背景色付きの太字の部分がFullGC発生の要因を示す個所です。
… [VGC]<Wed Jan 07 01:56:13 2015>[Full GC 11273K->6037K(15872K), 0. 0060004 secs][DefNew::Eden: 442K->0K(4416K)][DefNew::Survivor: 512K->0K(512K)][Tenured: 10319K->6037K(10944K)][Metaspace: 22811K(24520K, 24576K)->22811K(24520K, 24576K)][class space: 10758K(10988K, 11008K)->10758K(10988K, 11008K)][cause:MetaspaceAllocFail][User: 0.0312002 secs][Sys: 0.0000000 secs] …
この出力例からは,次のことがわかります。
-
Metaspace領域にアロケーションしようとしたメモリサイズが,確保済みMetaspace領域の未使用メモリサイズ(24576K-22811K=1765K)を上回りました。
-
FullGCの要因は,Metaspaceヒープの割り付け失敗です。
(8) javagcコマンドを実行した場合の出力例
拡張verbosegc情報の出力例を次に示します。背景色付きの太字の部分がFullGC発生の要因を示す個所です。
… [VGC]<Mon Apr 18 21:46:50 2005>[Full GC 369K->189K(3520K), 0.0403010 secs][DefNew::Eden: 369K->0K(2048K)][DefNew::Survivor: 0K->0K(64K)][Tenured: 0K->189K(1408K)][Metaspace: 3634K(4492K, 4492K)->3634K(4492K, 4492K)][class space: 356K(388K, 388K)->356K(388K, 388K)][cause:JavaGC Command][User: 0.0156250 secs][Sys: 0.0312500 secs] …
この出力例からは,次のことがわかります。
-
FullGCの要因は,javagcコマンド実行です。
(9) jheapprofコマンドを実行した場合の出力例
拡張verbosegc情報の出力例を次に示します。背景色付きの太字の部分がFullGC発生の要因を示す個所です。
… [VGC]<Mon Apr 18 21:46:50 2005>[Full GC 369K->189K(3520K), 0.0403010 secs][DefNew::Eden: 369K->0K(2048K)][DefNew::Survivor: 0K->0K(64K)][Tenured: 0K->189K(1408K)][Metaspace: 3634K(4492K, 4492K)->3634K(4492K, 4492K)][class space: 356K(388K, 388K)->356K(388K, 388K)][cause:JHeapProf Command][User: 0.0156250 secs][Sys: 0.0312500 secs] …
この出力例からは,次のことがわかります。
-
FullGCの要因は,jheapprofコマンド実行です。