Java オプション

JavaVMのメモリ領域に関するVM引数

||オプション ||説明 ||-Xms ||ヒープ全体の初期値 ||-Xmx ||ヒープ全体の最大値 ||-XX:NewSize ||New領域の初期値(-Xmnと同じ) ||-XX:MaxNewSize ||New領域の最大値 ||-XX:PermSize ||Permanent領域の初期値 ||-XX:MaxPermSize||Permanent領域の最大値 ||-Xss ||スレッドスタックの領域(デフォルト512k)

※OSによっては1つのJavaプロセスに割り当てられるヒープに制限がある場合があるので注意が必要

http://docs.oracle.com/cd/E19528-01/820-1613/6nd986vcr/index.html#abeii

その他VM引数

||オプション||説明 ||-client || HotSpot VMのクライアントモードを有効化 ||-server || HotSpot VMのサーバーモードを有効化

※HotSpot VMは-clientと-serverオプションによりクライアント用VMとサーバ用VMを使い分けることができる。

※HotSpotはクライアント版、サーバ版と呼ばれる二つの互換版からなる。クライアント版は必要不可欠なクラスやメソッドのみを素速くロードしコンパイルするようチューニ ングする。サーバ版は、よりゆっくりロードを行うが、より高性能な高度に最適化されたJITコンパイル結果を産出することに、より尽力する。

VM引数のまとめ

http://d.hatena.ne.jp/tanakakns/20120508/1336467306

まとめると以下くらいの感じでよいのでは。

Webアプリを想定。

-server
-Xms1024m
-Xmx1024m
-XX:NewSize384m
-XX:MaxNewSize384m
-XX:PermSize=128m
-XX:MaxPermSize=128m
-XX:+DisableExplicitGC
-XX:+UseConcMarkSweepGC
-XX:+CMSParallelRemarkEnabled
-XX:+UseParNewGC
-XX:SurvivorRatio=8
-XX:MaxTenuringThreshold=32
-XX:TargetSurvivorRatio=80
-Xloggc:/[ログ出力先]/gc.`date '+%Y-%m-%d'`.log
-XX:+PrintGCDetails
-XX:+PrintGCTimeStamps
-XX:+PringGCDateStamps
-XX:+PrintClassHistogram
-XX:+HeapDumpOnOutOfMemoryError
-XX:HeapDumpPath=/[ヒープダンプ出力先]/java.hprof