14.5 Application Serverで指定できるJava HotSpot VMのオプション
ここでは,add.jvm.argに指定できるJava HotSpot VMのオプション,およびオプションを指定する際の注意事項について説明します。
add.jvm.argに指定できるJava HotSpot VMのオプションについて次の表に示します。なお,「VR」とは,パラメタが導入・変更されたアプリケーションサーバのバージョンです。
オプション名 |
内容 |
指定可能値 |
VR |
---|---|---|---|
-D<property> |
JavaVMのシステムプロパティを指定します。 |
入力は制限されません。 |
05-00 |
-agentlib:<libname>[=<options>] |
ネイティブエージェントライブラリ<libname>をロードします。 |
入力は制限されません。 |
08-00 |
-verbose:<情報種別> |
<情報種別>に指定した情報を出力します。<情報種別>に指定できる値を示します。
|
指定できる文字列を次に示します。
|
05-00 |
-Xloggc:<ファイル> |
-verbose:gcと同様にGCイベントが発生するたびに報告しますが,そのデータを<ファイル>に記録します。-verbose:gcを指定したときに報告される情報のほかに,報告される各イベントの先頭に,最初のGCイベントからの経過時間(秒単位)が付け加えられます。 |
入力は制限されません。 |
05-00 |
-Xms<size> |
Javaヒープの初期サイズを設定します。 |
自然数の値を次に示す単位を使って指定します。
なお,大文字・小文字は区別されません。 |
05-00 |
-Xmx<size> |
Javaヒープの最大サイズを設定します。 |
自然数の値を次に示す単位を使って指定します。
なお,大文字・小文字は区別されません。 |
05-00 |
-Xmn<size> |
New領域の初期値および最大値を設定します。 |
自然数の値を次に示す単位を使って指定します。
なお,大文字・小文字は区別されません。 |
05-00 |
-Xss<size> |
1スタック領域の最大サイズを設定します。 |
自然数の値を次に示す単位を使って指定します。
なお,大文字・小文字は区別されません。 |
05-00 |
-Xprof |
このオプションを指定した場合,実行中のプログラムのプロファイルを生成し,プロファイリングデータを標準出力に出力します。このオプションは,プログラム開発用のユーティリティとして提供されています。本番稼働システムでの使用を目的としたものではありません。 |
− |
05-00 |
-Xrunhprof[:<suboption>=<value>,...] |
CPU,ヒープ,またはモニタのプロファイリングを有効にします。-Xrunhprofの後ろにコロン「:」を指定して「<suboption>=<value>」を記述します。「<suboption>=<value>」はコンマ「,」で区切って複数指定できます。 サブオプションとそのデフォルト値のリストを取得するには,コマンドjava-Xrunhprof:helpを実行します。 |
任意の文字列を指定します。 <suboption>には「=」および「,」は指定できません。 また,<value>には「,」は指定できません。 |
05-00 |
-Xrun<libraryName> |
JVMPI,JVMDIなどのエージェントを含むライブラリと,起動時に渡されるオプションの文字列を指定します。 |
入力は制限されません。 |
05-00 |
-Xdebug |
指定した場合,JVMDIのサポートを有効にして開始します。JVMDIは推奨されていません。また,J2SE 5.0でのデバッグには使用されません。したがって,J2SE 5.0でのデバッグには,このオプションは必要ありません。 |
− |
05-00 |
-XX:NewRatio=<value> |
New領域に対するTenured領域の割合を指定します。 <value>が2の場合は,New領域とTenured領域の割合が,1:2になります。 「New領域の使用中サイズ≧Tenured領域の空き領域サイズ」になるとFullGCが発生します。このオプションに1を設定すると,FullGCが多発するので注意してください。 |
自然数の値を指定します。 |
05-00 |
-XX:MetaspaceSize=<size> |
Metaspace領域の初期サイズを指定します。 |
自然数の値を次に示す単位を使って指定します。
なお,大文字・小文字は区別されません。 |
09-70 |
-XX:MaxMetaspaceSize=<size> |
Metaspace領域の最大サイズを指定します。 |
自然数の値を次に示す単位を使って指定します。
なお,大文字・小文字は区別されません。 |
09-70 |
-XX:CompressedClassSpaceSize |
Compressed Class Spaceの最大サイズを指定します。 |
自然数の値を次に示す単位を使って指定します。
なお,大文字・小文字は区別されません。 |
09-70 |
-XX:SurvivorRatio=<value> |
New::Survivor領域のFrom空間とTo空間に対するNew::Eden領域の割合を指定します。 <value>に8を設定した場合は,New::Eden領域,From空間,To空間の割合が,8:1:1になります。 |
自然数の値を指定します。 |
05-00 |
-XX:TargetSurvivorRatio=<value> |
GC実行後のNew::Survivor領域内でJavaオブジェクトが占める割合の目標値(0〜100(単位:%))を指定します。 |
自然数の値を指定します。 |
05-00 |
-XX:MaxTenuringThreshold=<value> |
CopyGC実行時に,From空間とTo空間でJavaオブジェクトを入れ替える回数のしきい値を指定します。指定した回数を超えて入れ替え対象になったJavaオブジェクトは,Tenured領域に移動されます。 このオプションの有効範囲は,0〜デフォルト値です。範囲外の値を指定した場合,しきい値を超えた場合にTenured領域へ移動する機能は無効になります。 |
自然数の値を指定します。 |
05-00 |
-Xrunhndlwrap |
JDKのバージョンが5以下の環境でWindowsをログオフしたとき,JavaVMの実行を継続するかどうか設定します。 -XX:+EagerXrunInitを指定した場合,このオプションの指定は無効になります。また,-agentlib:hndlwrap2 を設定した場合,このオプションは設定しないでください。 このオプションは,ほかのJVMTI版プログラムと同時に使用できません。 コマンドプロンプト上でこのオプションを使用したJavaを実行している状態でログオフすると,「プログラムが反応しない」旨のエラーポップアップが表示され,ログオフできません。 |
− |
05-01 |
-agentlib:hndlwrap2 |
JDKのバージョンが6の環境でWindowsをログオフしたとき,JavaVMの実行を継続するかどうか設定します。 -Xrunhndlwrapを設定した場合,このオプションは設定しないでください。 このオプションは,ほかのJVMTIプログラムと同時に使用できません。 コマンドプロンプト上でこのオプションを使用したJavaを実行している状態でログオフすると,「プログラムが反応しない」旨のエラーポップアップが表示され,ログオフできません。 |
− |
08-50 |
-XX:[+|-]UseSerialGC※ |
|
指定できる文字を次に示します。
|
08-70 |
-XX:[+|-]UseG1GC |
-XX:+HitachiUseExplicitMemoryオプションとは同時に指定できません。指定した場合,メッセージが標準出力に出力され,JavaVMがリターンコード1で終了します。 |
指定できる文字を次に示します。
|
09-60 |
-XX:ParallelGCThreads |
G1GCのEvacuationを並列実行するスレッドの数を指定します。-XX:+UseG1GCを指定したときに有効になります。なお,このオプションは,デフォルト値で使用することを推奨します。変更する場合は,実際にJavaVMを動作させて測定した値を基に,最適な値を算出してから変更してください。 JavaVM起動時に,このオプションに指定した数のEvacuation処理用のスレッドが作成され,処理が実行されます。 このオプションの指定を省略した場合のデフォルト値は次のとおりです。
例えば,4CPUの場合は,「ParallelGCThreads=4」でデフォルト値は4になります。また,72CPUの場合は,「ParallelGCThreads=8+(72−8)×(5÷8)=48」で48になります。 このオプションに0を指定した場合は,デフォルト値が使用されます。 指定時には,次の点に注意してください。
|
自然数の値を指定します。 |
08-70 |
-XX:ConcGCThreads |
G1GCのConcurrent Markingの処理を並列実行するスレッドの数を指定します。 -XX:+UseG1GCを指定したときに有効になります。なお,このオプションは,デフォルト値で使用することを推奨します。変更する場合は,実際にJavaVMを動作させて測定した値を基に,最適な値を算出してから変更してください。 JavaVM起動時に,このオプションに指定した数のConcurrent Marking処理用のスレッドが作成され,処理が実行されます。 このオプションの指定を省略した場合のデフォルト値は次のとおりです。
Max(A,B)はAとBのうち,大きい値を取ることを意味します。また,ParallelGCThreadsは-XX:ParallelGCThreadsの値を意味します。 このオプションに0を指定した場合はデフォルト値が使用されます。 指定時には次の点に注意して下さい。
|
自然数の値を指定します。 |
09-60 |
-XX:MaxGCPauseMillis |
G1GCのGCによるアプリケーション停止時間の目標時間を[ms]の単位で指定できます。 -XX:+UseG1GCを指定したときに有効になります。 このオプションに0を指定した場合は,メッセージが標準出力に出力されJavaVMの起動に失敗します。 このオプションに100以下の値を指定する場合,ログファイルの非同期出力機能(-XX: +JavaLogAsynchronous)を使用することを推奨します。 |
自然数の値を指定します。 |
09-60 |
-XX:ReservedCodeCacheSize |
コードキャッシュ領域の最大サイズを指定します。 |
自然数の値を次に示す単位を使って指定します。
なお,大文字・小文字は区別されません。 |
09-50 |
- (凡例)
-
−:該当なし
- 注※
-
-XX:[+|-]UseSerialGCオプションと-XX:[+|-]UseG1GCオプションの指定の組み合わせごとに実行される処理を次に示します。
-XX:[+|-]UseSerialGCオプションの指定 |
-XX:[+|-]UseG1GCオプションの指定 |
実行される処理 |
---|---|---|
指定なし |
指定なし |
SerialGCを実行 |
-XX:+UseSerialGC |
-XX:+UseG1GC |
プロセスの起動に失敗 |
-XX:+UseSerialGC |
-XX:-UseG1GC |
SerialGCを実行(デフォルトと同様) |
-XX:-UseSerialGC |
-XX:-UseG1GC |
|
-XX:-UseSerialGC |
-XX:+UseG1GC |
G1GCを実行 |
- 注意事項
-
-
デバッグまたはプロファイリング用オプションについて
JavaVMオプションの-Xprofや-Xdebug,JVMTIエージェントのhprofやjdwp(-agentlib:<libname>などで指定)は,プログラムの開発用ユーティリティとして提供されているものです。システムの運用では指定しないようにしてください。
-
GCの指定について
アプリケーションサーバのGCは,SerialGC(UseSerialGC)とG1GC(UseG1GC)を選択できます。この二つのGCを同時に指定しないようにしてください。同時に指定した場合は,Javaプロセスが起動できません。
-
- ポイント
-
Java HotSpot VMのオプションのデフォルト値は,サーバごとに参照先が異なります。サーバ,およびアプリケーションごとのJava HotSpot VMのオプションのデフォルト値の参照先を次の表に示します。
表14‒13 サーバ,およびアプリケーションごとのJava HotSpot VMのオプションのデフォルト値の参照先 使用するサーバおよびアプリケーション
参照先
J2EEサーバ
バッチサーバ
cjclstartapコマンドで起動するJavaアプリケーション
そのほかのJavaアプリケーション
なお,Java HotSpot VMのオプションを簡易構築定義ファイルに指定する場合は,「param-name指定値」にadd.jvm.argを指定した場合に指定できる「param-valueの指定内容」にJava HotSpot VMのオプションを指定してください。