コンカレントGC

今日はTomcatのパフォーマンスチューニングをしていました。
高負荷をかけていると時々CPU使用率が100%近く行ってしまうので、
とりあえずGCから何とかしようと思って、
このへんを読んで、GCスループットGCからコンカレントGCにしてみました。
それで上記の問題はあっさり解決。
デフォルト設定のコンカレントGCだと全体的にレスポンスが遅くなるという話でしたが、
特にそういう問題も発生しませんでした。


レスポンスが遅くなる原因は、ここによると以下のようなものなので、
長命のオブジェクトと極短命のオブジェクトがほとんどを占めている超軽量アプリの場合は、
発生しにくいのかもしれません。

1回のマイナーGCで回収されなかった短命オブジェクトはすぐにOld世代領域に移動してしまう。結果として、Old世代領域の使用量が上がりやすくなり、メジャーGCの回数が増えてしまうのだ。

今後につなげるためにももう少しいろいろ試してみるとしますか。
とりあえずアプリが軽すぎてサーバの限界負荷を見る前にローカルのJMeterが音を上げてしまうので、
コマンドラインでの実行を試してみようかなとか。