tsalakh ain sus noam Huyah ol guf

勉強会のメモ。その他備忘録。参考にさせて頂いたサイトや資料はリンクさせて頂いていますが不都合があればご連絡ください。

【技術メモ】CMS GC

CMS-GC

CMS-GC=Concurrent Mark Sweep-GC

特徴

  • FullGCを短時間化することが目的
  • youngのGC時は、必ずJava停止
  • oldのGC時は、解放時のみJava停止
    • Gabageを探す間は止まらないがCPU増加
    • コンパクト化しない、その分早いがヒープは断片化
    • 断片化のクリーンアップ時にはJava停止
-XX:+UserParNewGC
-XX:+UseConcMarkSweepGC

コンカレントサイクル

  1. Initial Mark ←Stop the world
  2. Concurrent mark
  3. Concurrent preclean
  4. Concurrent abortable preclean
  5. Remark (Final mark) ← Stop the world
  6. Concurrent sweep
  7. Concurrent reset

このイベントが出ちゃダメ

  • concurrent mode failure
    • youngGC時、oldに空きがない
  • promotion failed
    • oldの断片化で空きがない
  • Full GC
    • metaspaceがいっぱいになったのでGC