Full GCの発生は、ミッションクリティカルなWebシステムでは許容できない問題である。発生の抑止方法について順を追って検討してみよう。 Webシステムの安定動作には、メモリ使用量の適切な見積もりが不可欠であることをは前回に説明した。しかしJavaの特性上、しっかりとサイジングしてもある程度のFull GCの発生は避けられない。Full GC実行中には、Webシステムが一時停止して応答がない「Stop the World」と呼ばれる現象が発生する。これはミッションクリティカルなシステムでは許容することができない問題である。その原因と対策方法を、改めて紹介する。 業務システムが一時停止したようにみえる「Stop the World」はなぜ起こるか 一般にGCでは、不要になったメモリ域の破棄と同時に、メモリ域の再編成(コンパクション)が実行される。これによってメモリ域の断片化(フラグメンテー
![“Don’t”Stop the World――Full GCへの対策](https://cdn-ak-scissors.b.st-hatena.com/image/square/0b8568e7f3a226d736e6e07581fd3122f5a48dbd/height=288;version=1;width=512/https%3A%2F%2Fimage.itmedia.co.jp%2Fenterprise%2Farticles%2F0906%2F10%2Fjava1.jpg)