CMS GCで勘違いしていたこと

  • 0
    Like
  • 0
    Comment

    CMS GCについて

    はここが大変わかりやすく勉強になりました。
    http://cco.hatenablog.jp/entry/2014/12/01/162240

    なにを勘違いしていたのか

    上記のサイトを見たり、仕事で使っているサーバを参考にとりあえず以下の感じで、CMS GCを設定していました。

     -XX:+UseConcMarkSweepGC
     -XX:CMSInitiatingOccupancyFraction=40 
    

    これでold領域が40%になればCMS GCが走ってくれる!

    というのが勘違いでした。。。

    実際は

    上記の設定だと初めてold領域が40%に達したときのみCMS GCが走ります。。
    その後は100%になるまでCMS GCが走らないことも。。

    そうじゃなくて、毎回40%でCMS GCに動いて欲しい。。。><

    解決策

    -XX:+UseCMSInitiatingOccupancyOnlyこれを追加してあげればよかった!
    これを設定するとCMS発生の起因をCMSInitiatingOccupancyFractionのみにするそうです。

    無事毎回40%のタイミングでCMS GCが走るようになって幸せです。^^