第9章 JVM の設定

Java Virtual Machine (JVM) の設定は、スタンドアロンの JBoss EAP サーバーと管理対象ドメインの JBoss EAP サーバーでは異なります。

スタンドアロン JBoss EAP サーバーインスタンスでは、起動時にサーバー起動プロセスが JVM 設定を JBoss EAP サーバーに渡します。これは、JBoss EAP を起動する前にコマンドラインから宣言できます。 また、管理コンソールの Configuration にある System Properties 画面を使用して宣言することもできます。

管理対象ドメインでは、JVM の設定は host.xml および domain.xml 設定ファイルで宣言され、ホスト、サーバーグループ、またはサーバーレベルで設定できます。

注記

システムプロパティーは、起動中に JBoss EAP モジュール (ロギングマネージャーなど) が使用する JAVA_OPTS で設定する必要があります。

9.1. スタンドアロンサーバーの JVM 設定

スタンドアロン JBoss EAP サーバーインスタンスの JVM 設定は、サーバーの起動前に JAVA_OPTS 環境変数を設定すると、起動時に宣言できます。

Linux で JAVA_OPTS 環境変数を設定する例は次のとおりです。

$ export JAVA_OPTS="-Xmx1024M"

Microsoft Windows 環境でも同じ設定を使用できます。

set JAVA_OPTS="Xmx1024M"

この代わりに、JVM に渡すオプションの例が含まれる EAP_HOME/bin フォルダーの standalone.conf ファイル (Windows Server の場合は standalone.conf.bat) に JVM 設定を追加することもできます。

警告

JAVA_OPTS 環境変数を設定すると、standalone.conf からのデフォルト値がオーバーライドされるため、JBoss EAP の起動に問題が発生する可能性があります。

9.2. 管理対象ドメインの JVM 設定

JBoss EAP 管理対象ドメインでは、複数のレベルで JVM の設定を定義できます。特定ホストのカスタム JVM 設定を定義し、それらの設定をサーバーグループまたは個別のサーバーインスタンスに適用できます。

デフォルトでは、サーバーグループおよび各サーバーは親から JVM 設定を継承しますが、各レベルで JVM 設定をオーバーライドすることもできます。

注記

domain.conf の JVM 設定 (Windows Server の場合は domain.conf.bat) は JBoss EAP ホストコントローラーの Java プロセスに適用されます。 ホストコントローラーによって制御される個別の JBoss EAP サーバーインスタンスには適用されません。

9.2.1. ホストコントローラーの JVM 設定の定義

ホストコントローラーの JVM 設定を定義し、これらの設定をサーバーグループまたは各サーバーに適用することができます。JBoss EAP には default の JVM 設定が含まれますが、以下の管理 CLI コマンドを実行すると、カスタム JVM 設定およびオプションがある production_jvm という名前の JVM 設定が新たに作成されます。

/host=HOST_NAME/jvm=production_jvm:add(heap-size=2048m, max-heap-size=2048m, max-permgen-size=512m, stack-size=1024k, jvm-options=["-XX:-UseParallelGC"])

使用できるすべてのオプションの説明は「管理対象ドメインの JVM 設定属性」を参照してください。

また、JBoss EAP 管理コンソールで JVM 設定を作成および編集するには、RuntimeHosts と選択し、ホストを選択して 表示 をクリックし、JVMs タブを選択します。

これらの設定は host.xml<jvm> タグ内に保存されます。

9.2.2. JVM 設定のサーバーグループへの適用

サーバーグループの作成時に、グループのすべてのサーバーが使用する JVM 設定を指定できます。以下の管理 CLI コマンドを実行すると、前の例で示された production_jvm JVM 設定を使用する groupA という名前のサーバーグループが作成されます。

/server-group=groupA:add(profile=default, socket-binding-group=standard-sockets)
/server-group=groupA/jvm=production_jvm:add

サーバーグループのすべてのサーバーは、production_jvm から JVM 設定を継承します。

サーバーグループレベルで特定の JVM 設定をオーバーライドすることもできます。たとえば、別のヒープサイズを設定するには、以下のコマンドを使用できます。

/server-group=groupA/jvm=production_jvm:write-attribute(name=heap-size,value="1024m")

上記コマンドの実行後、サーバーグループ groupAproduction_jvm から JVM 設定を継承しますが、ヒープサイズの値は 1024m にオーバーライドされます。

使用できるすべてのオプションの説明は「管理対象ドメインの JVM 設定属性」を参照してください。

また、JBoss EAP 管理コンソールでサーバーグループの JVM 設定を編集するには、RuntimeServer Groups と選択し、サーバーグループを選択して 表示 をクリックし、JVMs タブを選択します。

サーバーグループの設定は domain.xml に保存されます。

9.2.3. JVM 設定の個別のサーバーへの適用

デフォルトでは、個別の JBoss EAP サーバーインスタンスは属するサーバーグループの JVM 設定を継承します。しかし、継承した設定をホストコントローラーからの別の JVM 設定定義でオーバーライドしたり、特定の JVM 設定をオーバーライドすることもできます。

たとえば、以下のコマンドは 前の例で示したサーバーグループの JVM 定義をオーバーライドし、server-one の JVM 設定を default の JVM 定義に設定します。

/host=HOST_NAME/server-config=server-one/jvm=default:add

また、サーバーグループと同様に、サーバーレベルで特定の JVM 設定をオーバーライドすることもできます。たとえば、別のヒープサイズを設定するには、以下のコマンドを使用できます。

/host=HOST_NAME/server-config=server-one/jvm=default:write-attribute(name=heap-size,value="1024m")

使用できるすべてのオプションの説明は「管理対象ドメインの JVM 設定属性」を参照してください。

また、JBoss EAP 管理コンソールでサーバー JVM 設定を作成編集するには、RuntimeHosts と選択し、ホストを選択して 表示 をサーバー上でクリックし、JVMs タブを選択します。

各サーバーのこれらの設定は host.xml に保存されます。

9.3. JVM 状態の表示

ヒープおよびスレッドの使用状況など、スタンドアロンまたは管理対象ドメインサーバーの JVM リソースの状態は管理コンソールから表示できます。統計はリアルタイムでは表示されませんが、Refresh をクリックすると JVM リソースの最新の概要を表示できます。

スタンドアロン JBoss EAP サーバーの JVM の状態を表示するには、以下を行います。

  • Runtime タブに移動し、サーバーを選択して、状態 を選択します。

管理対象ドメインでの JBoss EAP サーバーの JVM の状態を表示するには、以下を行います。

  • RuntimeHosts と選択し、ホストとサーバーを選択して 状態 を選択します。

以下のヒープ使用情報が表示されます。

Max
メモリー管理に使用できるメモリーの最大量。
Used
使用されたメモリーの量。
Committed
JVM が使用するために確保されたメモリー量。

JVM のアップタイムやスレッドの使用状況などの他の情報も表示されます。

9.4. JVM の調整

JVM のパフォーマンスを最適化するための情報は、『パフォーマンスチューニングガイド』の「JVM の調整」を参照してください。