Oracle Unified Directoryおよびそのコマンド行ユーティリティは、デフォルトのJava仮想マシンおよびJava引数で動作します。特定のディレクトリ・デプロイメントのパフォーマンスを向上させるために、JVM、Javaオプションおよびデータベース(DB)キャッシュを構成することが役立つ場合があります。
この項の内容は次のとおりです。
ディレクトリ・サーバーは、各コマンド行ユーティリティおよびディレクトリ・サーバー自体に対して、Java仮想マシン(JVM)およびJavaオプションを構成する手段となります。Java構成は、instance-dir/OUD/config/java.properties
(UNIXの場合)またはinstance-dir\OUD\config
(Windowsの場合)にあるプロパティ・ファイルに提供されます。dsjavaproperties
コマンドが実行されるたびに、このファイルで指定された構成が考慮されます。dsjavaproperties
コマンドを実行しない場合、プロパティ・ファイルは無視されます。
プロパティ・ファイルを使用して、-server
モードまたは-client
モードでJVMを使用してコマンドを実行するかどうかを(いくつかある引数の中で特に)指定できます。デフォルトでは、すべてのクライアント・アプリケーションは-client
モードで実行され、ディレクトリ・サーバーおよび特定のサーバー・ユーティリティは-server
モードで実行されます。一般に、-server
モードのスループットは-client
モードよりも高いものの、起動には若干多くの時間がかかります。
特定のコマンドについては(import-ldif
、export-ldif
、backup
、およびrestore
)、コマンドがオンライン・モードで実行しているか、またはオフライン・モードで実行しているかに応じて異なるJava引数(および異なるJVM)を指定することもできます。
Javaプロパティ・ファイルの形式は次のとおりです。
command-name.java-home=JVM-path
command-name.java-args=JVM-arguments
次の表では、java.properties
ファイルに存在する特に重要な3つのプロパティを示しています。
プロパティ | 説明 |
---|---|
|
|
|
特定のユーティリティに対して別のJVMが指定されている場合を除き、ディレクトリ・サーバーおよびそのすべてのコマンド行ユーティリティに使用されるJVMが設定されます。 |
次の表では、サーバーのパフォーマンスに影響を与える可能性があるJavaオプションの概要を示します。これらのオプションの一部はSun JVMにのみ適用されるため注意してください。
条件 | オプション | 説明 |
---|---|---|
|
サーバー・アプリケーションの実行時の最適化が選択されます。ディレクトリ・サーバーは起動とウォームアップの時間が長くなりますが、大幅に最適化されスループットが向上します。 |
|
|
64ビット・マシンのみが対象です。デフォルトでは、アーキテクチャに関係なくディレクトリ・サーバーにより32ビットのJVMが選択されます。(4GBを超える)大きなJVMヒープが必要であり、アーキテクチャが64ビットである場合、このオプションを指定する必要があります。 |
|
|
JVMに使用できる初期メモリー・サイズおよび最大メモリー・サイズがそれぞれ選択されます。これらの値はJVMヒープに使用され、ディレクトリ・サーバーとそのデータベース(DB)キャッシュ(単数または複数)のメモリーが予約されます。使用可能なメモリー量を増やすとパフォーマンスが向上する場合がありますが、増やしすぎると、フル・ガベージ・コレクションを実行するための一時停止時間が長くなるという悪影響が生じる可能性があります。したがって、初期サイズおよび最大サイズは同じ値に設定する必要があります。一般的なガイドラインとして、Oracle Berkeley Java Edition (JE)データベース・フォルダ( 4GBを超えるJVMヒープには64ビットのJVMが必要です。 |
|
|
外部アプリケーションで負荷のかかるガベージ・コレクションが強制されることを防ぎます。 |
|
|
スループットが遅い環境では、このオプションを使用してJVMの若い世代のサイズを増やすことを検討してください。デフォルトでは、若い世代はかなり小さく、スループットの高いシナリオでは大量のガベージが生成される可能性があります。今度はこのガベージ・コレクションにより、JVMにおいて一時オブジェクトが誤って古い世代に格納されます。 |
|
サーバーのみ |
|
CMSガベージ・コレクタが選択されます。このガベージ・コレクタは、一時停止時間を短縮するために設定されます。これによりJavaアプリケーションの平均スループットが低下しますが、CPUに負担をかけるガベージ・コレクションの時間が大幅に短縮されます。このオプションは、レスポンス時間に制約がある環境では必須です。 |
|
コレクションが開始されるレベルが選択されます。デフォルト値は68%です。 |
|
オフラインのインポートのみ |
|
古い世代の並列ガベージ・コレクタが選択されます。このガベージ・コレクタは、スループットを上げるために設定されます。これにより、インポートほど重要ではなく、発生頻度の低いstop-the-worldガベージ・コレクションを犠牲にして、 |
|
ガベージ・コレクションの詳細が印刷されます。 |
|
|
デバッグに役立つガベージ・コレクションのタイム・スタンプが印刷されます。 |
|
その他のアプリケーション( |
|
クライアント・アプリケーションの実行時の最適化が選択されます。コンパイルのオーバーヘッドが低下するため、アプリケーションの起動が速くなり、レスポンスが向上します。 |
|
アプリケーションに対して小さい初期JVMヒープ・サイズが選択されます。 |
Javaプロパティ・ファイルをcommand-name.java-home=jvm
のように編集します。
たとえば、オフラインのインポートについて特定のJDK 1.6を指定するには、java.properties
ファイル内のimport-ldif.offline
で始まる行を、import-ldif.offline.java-home=/usr/jdk1.6
のように編集します。
dsjavaproperties
コマンドを実行してプロパティを適用します。
Javaプロパティ・ファイルをcommand-name.java-args=arguments
のように編集します。
たとえば、オンラインのエクスポートに最大ヒープ・サイズとして256MBが使用されるよう指定するには、java.properties
ファイル内のexport-ldif.online
で始まる行を、export-ldif.online.java-args=-Xms256m -Xmx256m
のように編集します。
dsjavaproperties
コマンドを実行してプロパティを適用します。
GUIインストーラを使用する場合、インストール・プロセスの一部としてJavaランタイム設定を構成できます。Javaランタイム設定を構成するには、「実行時オプション」パネルで「変更」をクリックします。次の設定を構成できます。
「初期メモリー」。サーバーの起動に使用されるメモリー量をMBで指定します。
「最大メモリー」。サーバーの実行専用となる最大メモリー量をMBで指定します。
「その他のJava引数」。サーバーのパフォーマンスに影響を与える可能性があるその他のJavaオプション。これらのオプションの詳細なリストは、「JVMオプションの構成」を参照してください。
注意:
|
ディレクトリ・サーバーの全体的なパフォーマンスのクリティカル・コンポーネントは、データベース(DB)キャッシュのサイズです。特定のメモリー設定は、使用しているハードウェア、ディレクトリ内のエントリ数およびパフォーマンス要件に応じて決定する必要があります。たとえば、import-ldif
ユーティリティを使用してデータをインポートする場合、潜在的なデータ・キャッシュの削除の問題を最小限に抑えたり回避できるような方法でディレクトリ・サーバーを構成する必要があります。理想的には、DBキャッシュを、データベース全体が確実にキャッシュに収まるような値に設定します。必要なヒープ・サイズは、エントリ数とそのサイズによって決まります。たとえば、個々が10KBの200Kのエントリをインポートしている場合、JVMヒープ・サイズに2GBを指定してから、ディレクトリ・サーバーのランタイム環境に少なくとも1GB、残りをDBキャッシュに割り当てます。
DBキャッシュを設定するには、dsconfig
コマンド行ユーティリティでdb-cache-percent
プロパティまたはdb-cache-size
プロパティを構成します。db-cache-percent
プロパティおよびdb-cache-size
プロパティは、サーバーがDBキャッシュに使用できる最大サイズを表します。このいずれかのプロパティで設定されたサイズよりもデータベースが小さい場合、データベースのサイズのみがJVMヒープに割り当てられます。
注意:
|
適切なディレクトリに移動します。
(UNIX, Linux) $cd instance-dir/OUD/bin
(Windows) C:\>cd instance-dir\OUD\bat
次に示すように、dsconfig
コマンドを実行してdb-cache-percent
を設定します。
dsconfig set-workflow-element-prop --element-name userRoot --set db-cache-percent:50 --hostname <hostname> --port <portnumber> -X -D @ "cn=directory manager"-j /tmp/password -n
これにより、db-cache-percent
が50パーセントに設定されます。したがって、2GBのメモリー割当ての場合、1GBのメモリーがDBキャッシュに割り当てられ、残りがJVMに割り当てられます。