皆さんは,ご自分で作成されたアプリケーションでどのくらいの頻度でガーベジ・コレクション(GC)が発生しているか認識されていますか。まずは,このGCの発生頻度から調べてみましょう。 GCの発生頻度を調べるにはjavaの起動オプションに-verboseを使用します。-verboseだけだとクラスローディングやネイティブライブラリの使用に関する情報も表示されてしまうので,GCだけに特化したいときには-verbose:gcとします。 先週も使用した,JDKのサンプルのJava2Demoでやってみましょう。 > java -verbose:gc -jar Java2Demo.jar [GC 512K->216K(1984K), 0.0089257 secs] [GC 726K->486K(1984K), 0.0281309 secs] [GC 997K->635K(1984K), 0.0097482
Full GCの発生は、ミッションクリティカルなWebシステムでは許容できない問題である。発生の抑止方法について順を追って検討してみよう。 Webシステムの安定動作には、メモリ使用量の適切な見積もりが不可欠であることをは前回に説明した。しかしJavaの特性上、しっかりとサイジングしてもある程度のFull GCの発生は避けられない。Full GC実行中には、Webシステムが一時停止して応答がない「Stop the World」と呼ばれる現象が発生する。これはミッションクリティカルなシステムでは許容することができない問題である。その原因と対策方法を、改めて紹介する。 業務システムが一時停止したようにみえる「Stop the World」はなぜ起こるか 一般にGCでは、不要になったメモリ域の破棄と同時に、メモリ域の再編成(コンパクション)が実行される。これによってメモリ域の断片化(フラグメンテー
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く