Cosminexus アプリケーションサーバ V8 リファレンス 定義編(サーバ定義)

[目次][索引][前へ][次へ]

19.5 Cosminexusで指定できるJava HotSpot VMのオプション

ここでは,add.jvm.argに指定できるJava HotSpot VMのオプション,およびオプションを指定する際の注意事項について説明します。

add.jvm.argに指定できるJava HotSpot VMのオプションについて次の表に示します。なお,「VR」とは,パラメタが導入・変更されたアプリケーションサーバのバージョンです。

表19-12 add.jvm.argを指定した場合に指定できるJava HotSpot VMのオプション

オプション名 内容 指定可能値 VR
-D<property> JavaVMのシステムプロパティを指定します。 入力は制限されません。 05-00
-agentlib:<libname>[=<options>] ネイティブエージェントライブラリ<libname>をロードします。 入力は制限されません。 08-00
-verbose:<情報種別> <情報種別>に指定した情報を出力します。<情報種別>に指定できる値を示します。

class:
クラスがロードされるたびにクラスに関する情報を出力します。

gc:
ガベージコレクションイベントが発生するたびに報告します。

jni:
ネイティブメソッドの使用およびそのほかのJava Native Interface(JNI)アクティビティに関する情報を報告します。
指定できる文字列を次に示します。
  • class
  • gc
  • jni
05-00
-Xloggc:<ファイル> -verbose:gcと同様にガベージコレクションイベントが発生するたびに報告しますが,そのデータを<ファイル>に記録します。-verbose:gcを指定したときに報告される情報のほかに,報告される各イベントの先頭に,最初のガベージコレクションイベントからの経過時間(秒単位)が付け加えられます。 入力は制限されません。 05-00
-Xms<size> Javaヒープの初期サイズを設定します。 自然数の値を次に示す単位を使って指定します。
  • キロ「k」
  • メガ「m」
  • ギガ「g」
  • テラ「t」
なお,大文字・小文字は区別されません。
05-00
-Xmx<size> Javaヒープの最大サイズを設定します。 自然数の値を次に示す単位を使って指定します。
  • キロ「k」
  • メガ「m」
  • ギガ「g」
  • テラ「t」
なお,大文字・小文字は区別されません。
05-00
-Xmn<size> New領域の初期値および最大値を設定します。 自然数の値を次に示す単位を使って指定します。
  • キロ「k」
  • メガ「m」
  • ギガ「g」
  • テラ「t」
なお,大文字・小文字は区別されません。
05-00
-Xss<size> 1スタック領域の最大サイズを設定します。 自然数の値を次に示す単位を使って指定します。
  • キロ「k」
  • メガ「m」
  • ギガ「g」
  • テラ「t」
なお,大文字・小文字は区別されません。
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領域の空き領域サイズ」になるとフルガーベージコレクションが発生します。このオプションに1を設定すると,フルガーベージコレクションが多発するので注意してください。
自然数の値を指定します。 05-00
-XX:PermSize=<size> Permanent領域の初期サイズを指定します。 自然数の値を次に示す単位を使って指定します。
  • キロ「k」
  • メガ「m」
  • ギガ「g」
  • テラ「t」
なお,大文字・小文字は区別されません。
05-00
-XX:MaxPermSize=<size> Permanent領域の最大サイズを指定します。 自然数の値を次に示す単位を使って指定します。
  • キロ「k」
  • メガ「m」
  • ギガ「g」
  • テラ「t」
なお,大文字・小文字は区別されません。
05-00
-XX:SurvivorRatio=<value> New::Survivor領域のFrom空間とTo空間に対するNew::Eden領域の割合を指定します。
<value>に8を設定した場合は,New::Eden領域,From空間,To空間の割合が,8:1:1になります。
自然数の値を指定します。 05-00
-XX:[+|-]PrintTenuringDistribution

-XX:+PrintTenuringDistribution
コピーガーベージコレクション実行時に,Survivor領域のオブジェクトの年齢分布を出力します。

-XX:-PrintTenuringDistribution
コピーガーベージコレクション実行時に,Survivor領域のオブジェクトの年齢分布を出力しません。
指定できる文字を次に示します。
  • プラス「+」
  • マイナス「-」
05-00
-XX:TargetSurvivorRatio=<value> ガーベージコレクション実行後のNew::Survivor領域内でJavaオブジェクトが占める割合の目標値(0〜100(単位:%))を指定します。 自然数の値を指定します。 05-00
-XX:MaxTenuringThreshold=<value> コピーガーベージコレクション実行時に,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※1

-XX:+UseSerialGC
シリアルコピーガーベージコレクションを実行します。

-XX:-UseSerialGC
シリアルコピーガーベージコレクションを実行しません。
指定できる文字を次に示します。
  • プラス「+」
  • マイナス「-」
08-70
-XX:[+|-]UseParNewGC※1

-XX:+UseParNewGC
パラレルコピーガーベージコレクションを実行します。

-XX:-UseParNewGC
パラレルコピーガーベージコレクションを実行しません。
ただし,次の二つの条件を両方満たす場合,-XX:+UseParNewGCオプションの指定は無効になり,-XX:+UseSerialGCオプション指定時と同じように扱われます。
  • -XX: ParallelGCThreadsオプションを明示的に指定していない。
  • 実行環境のCPU数が1である。
-XX:+HitachiUseExplicitMemoryオプションとは同時に指定できません。指定した場合,メッセージが標準出力に出力され,JavaVMがリターンコード1で終了します。
指定できる文字を次に示します。
  • プラス「+」
  • マイナス「-」
08-70※2
-XX:ParallelGCThreads コピーガーベージコレクションを並列実行するスレッドの数を指定します。-XX:+UseParNewGCを指定したときに有効になります。なお,このオプションは,デフォルト値で使用することを推奨します。変更する場合は,実際にJavaVMを動作させて測定した値を基に,最適な値を算出してから変更してください。
JavaVM起動時に,このオプションに指定した数のガーベージコレクションスレッドが作成され,処理が実行されます。
このオプションの指定を省略した場合のデフォルト値は次のとおりです。
  • 実行環境の論理CPU数が8以下の場合は,CPU数になります。
  • 実行環境の論理CPU数が9以上の場合は,「8+(CPU数−8)×(5÷8)」(小数点以下は切り捨て)の値になります。
例えば,4CPUの場合は,「ParallelGCThreads=4」でデフォルト値は4になります。また,72CPUの場合は,「ParallelGCThreads=8+(72−8)×(5÷8)=48」で48になります。
このオプションに0を指定した場合は,シリアルコピーガーベージコレクションが実行されます。
指定時には,次の点に注意してください。
  • 1を指定するとスレッド一つで並列実行することになるため,実行性能が下がります。
  • 実行環境で作成できるスレッド数を超える値を指定した場合は,JavaVM起動時にガーベージコレクションスレッドの作成に失敗するため,JavaVMを起動できません。
  • 有効な範囲外の値を指定した場合,メッセージが標準出力に出力され,JavaVMがリターンコード1で終了します。
自然数の値を指定します。 08-70

(凡例)
−:該当なし

注※1
-XX:+UseSerialGCオプションと-XX:+UseParNewGCオプションの両方を指定した場合,プロセスの起動に失敗します。

注※2
-XX:+UseParNewGCオプションは,JDKのバージョンが6の場合だけ指定できます。

ポイント
Java HotSpot VMのオプションのデフォルト値は,サーバごとに参照先が異なります。サーバ,およびアプリケーションごとのJava HotSpot VMのオプションのデフォルト値の参照先を次の表に示します。

表19-13 サーバ,およびアプリケーションごとのJava HotSpot VMのオプションのデフォルト値の参照先

使用するサーバおよびアプリケーション 参照先
J2EEサーバ 2.3 usrconf.cfg(J2EEサーバ用オプション定義ファイル)
バッチサーバ 3.2 usrconf.cfg(バッチサーバ用オプション定義ファイル)
Webコンテナサーバ 18.3 usrconf.cfg(Webコンテナサーバ用オプション定義ファイル)
cjclstartapコマンドで起動するJavaアプリケーション 15.2 usrconf.cfg(Javaアプリケーション用オプション定義ファイル)
そのほかのJavaアプリケーション 19.4 Cosminexusで指定できるJava HotSpot VMのオプションのデフォルト値
なお,Java HotSpot VMのオプションを簡易構築定義ファイルに指定する場合は,「param-name指定値」にadd.jvm.argを指定した場合に指定できる「param-valueの指定内容」にJava HotSpot VMのオプションを指定してください。