第12章 JVM
12.1. JVM について
12.1.1. JVM 設定について
host.xml
および domain.xml
設定ファイルで宣言され、サーバープロセスを起動および停止するドメインコントローラーコンポーネントにより決定されます。スタンドアロンサーバーインスタンスでは、サーバー起動プロセスで起動時にコマンドライン設定を渡すことができます。これらは、管理コンソールのコマンドラインまたは System Properties 画面で宣言できます。
監理対象ドメインの重要な機能は、JVM 設定を複数のレベルで定義できることです。サーバーグループまたはサーバーインスタンスによって、ホストレベルでカスタム JVM 設定を指定できます。特別な子要素は親設定よりも優先され、グループまたはホストレベルで除外せずに特定のサーバー設定を宣言できます。これにより、設定が設定ファイルで宣言されるか、実行時に渡されるまで、親設定は他のレベルで継承できます。
例12.1 ドメイン設定ファイルの JVM 設定
domain.xml
設定ファイルの、サーバーグループに対する JVM 宣言を示しています。
<server-groups> <server-group name="main-server-group" profile="default"> <jvm name="default"> <heap size="64m" max-size="512m"/> </jvm> <socket-binding-group ref="standard-sockets"/> </server-group> <server-group name="other-server-group" profile="default"> <jvm name="default"> <heap size="64m" max-size="512m"/> </jvm> <socket-binding-group ref="standard-sockets"/> </server-group> </server-groups>
main-server-group
という名前のサーバーグループが 64 メガバイトのヒープサイズと 512 メガバイトの最大ヒープサイズを宣言しています。このグループに属するすべてのサーバーは、これらの設定を継承します。これらの設定は、グループ全体、ホスト、または個別サーバーで変更できます。
例12.2 ホスト設定ファイルのドメイン設定
host.xml
設定ファイルの、サーバーグループに対する JVM 宣言を示しています。
<servers> <server name="server-one" group="main-server-group" auto-start="true"> <jvm name="default"/> </server> <server name="server-two" group="main-server-group" auto-start="true"> <jvm name="default"> <heap size="64m" max-size="256m"/> </jvm> <socket-binding-group ref="standard-sockets" port-offset="150"/> </server> <server name="server-three" group="other-server-group" auto-start="false"> <socket-binding-group ref="standard-sockets" port-offset="250"/> </server> </servers>
server-two
おちう名前のサーバーが、main-server-group
という名前のサーバーグループに属し、default
JVM グループから JVM 設定を継承します。以前の例では、main-server-group
のメインヒープサイズは 512 メガバイトに設定されていました。256 メガバイトの小さい最大ヒープサイズを宣言すると、server-two
が domain.xml
設定よりも優先され、必要に応じてパフォーマンスを微調整できます。
スタンドアロンサーバーインスタンスの JVM 設定は、実行時にコマンドライン引数として宣言できます。または、JVM 設定は、JVM に渡すオプションのサンプルが含まれる EAP_HOME/bin
フォルダーにある standalone.conf
ファイルに追加できます。
12.1.2. 管理コンソールで JVM の状態を表示する
要件
表12.1 JVM 状態属性
タイプ | 説明 |
---|---|
Max | メモリー管理に使用できるメモリーの最大量 (バイト単位) です。 |
Used | 使用されたメモリーの量 (メガバイト単位) です。 |
Committed | Java 仮想マシンが使用するために確保されたメモリー量 (バイト単位) です。 |
Init | メモリー管理に関し、Java 仮想マシンが最初にオペレーティングシステムより要求するバイト単位のメモリー量です。 |
JVM の状態の表示
JVM の状態はスタンドアロンサーバーか管理ドメインに表示することができます。スタンドアロンサーバーインスタンスに対して JVM の状態を表示する
図12.1 スタンドアロンサーバーインスタンスの JVM の状態
管理ドメインに対して JVM の状態を表示する
ランタイムスクリーンのドメイン状態メニューより JVM 状態を選択します。- 管理ドメインはサーバーグループの全サーバーインスタンスを表示できますが、サーバーメニューより選択し、一度に 1 つのサーバーのみを表示することができます。サーバーグループの他のサーバーの状態を表示するには、画面の左上にあるドロップダウンボックスをクリックしてグループに表示されるホストとサーバーより選択を行い、ボタンをクリックして結果をロードします。
図12.2 管理ドメインの JVM 状態サーバーメニュー
サーバーインスタンスに対する JVM 設定の状態が表示されます。