2009年6月17日水曜日

JVMのGCに関する各パラメータの設定

※詳しくは、http://www.tagtraum.com/gcviewer-vmflags.htmlを参照してください

1.-Xms、-Xmx
JVMのTotal Heap Size範囲を決めるパラメータ。
例:
-Xms256m -Xmx256m
※メモリーの確保ができれば、両パラメータに同じな値を設定してください。
(FULL GCの回数を減らせて、性能向上できるから)

2.-verbose:gc/-Xloggc:output-to-file-path
JVMのGCログを出力できるようにする設定
output-to-file-path:gcログ出力先のファイルパス
(例:-Xloggc:jvm1-4-2.gc)

3.-XX:NewRatio
New世帯領域(Young Generation)とOld世帯領域(Old Generation)の割り率
例:
-XX:NewRatio=3
意味:New世帯領域が全体ヒープサイズの四分の一を占める
Old世帯領域が四分の三を占める

※注:
①New世帯領域の方が小さくなると、Minor GCの発生頻度が高くなる
逆にOld世帯領域の方が小さくなると、Major GC(FULL GC)の発生頻度が高くなる
②MinorGCより、New世帯領域のObjectをOld世帯領域にコピーすることを行うから、
MajorGCには、十分なFREE領域を確保できなければ、MinorGCの操作が成功に完了できない
ですから、できれば、MajorGCのFree領域の量は、New世帯領域+2つのSurvivor Spaceの領域
より大きく設定する

4.-XX:NewSize、-XX:MaxNewSize
この2つのパラメータの設定により、New世帯領域のサイズ範囲を確定する
例:
-XX:MaxNewSize=1024m
※NewRationより、もっと精確にNew世帯領域の容量を確保できる

5.-XX:PermSize、-XX:MaxPermSize
Permanent Generation領域の容量を定義する(通常、Permanent Generationは、GCの動作と関係ない)
※System.gc()より、強制にMajorGCを呼び出し

6.-XX:MinHeapFreeRatio、-XX:MaxHeapFreeRatio
強制にGC後のFree Spaceを定義する

0 件のコメント: