ヘッダーをスキップ
Oracle® Fusion Middleware Oracle Unified Directoryインストレーション・ガイド
11g リリース2 (11.1.2)
E49805-03
  目次へ移動
目次

前
 
次
 

7 JVM、Javaオプションおよびデータベース・キャッシュの構成

Oracle Unified DirectoryのGUIインストーラまたはコマンド行インストーラでは、自動または手動でサーバーをチューニングするためのオプションが提供されます(第3章「ディレクトリ・サーバーの設定」を参照)。


注意:

プロキシ・サーバー・インスタンスまたはレプリケーション・ゲートウェイ・インスタンスをインストールする場合、このオプションは使用できません。


この章では、JVM、Javaオプションおよびデータベース(DB)キャッシュの手動チューニング・オプションについて説明します。

この項の内容は次のとおりです。

7.1 デフォルトのJVMおよびJava引数の構成

ディレクトリ・サーバーは、各コマンド行ユーティリティおよびディレクトリ・サーバー自体に対して、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-ldifexport-ldifbackup、およびrestore)、コマンドがオンライン・モードで実行しているか、またはオフライン・モードで実行しているかに応じて異なるJava引数(および異なるJVM)を指定することもできます。

7.1.1 Javaプロパティ・ファイルの形式

Javaプロパティ・ファイルの形式は次のとおりです。

  • command-name.java-home=JVM-path

  • command-name.java-args=JVM-arguments

次の表では、java.propertiesファイルに存在する特に重要な3つのプロパティを示しています。

プロパティ 説明

overwrite-env-java-args

Trueの場合、OPENDS_JAVA_ARGS環境変数のチェックの前に、このプロパティ・ファイル内のdefault.java-argsプロパティがチェックされます。falseの場合、最初にOPENDS_JAVA_ARGS環境変数がチェックされます。

default.java-home

特定のユーティリティに対して別のJVMが指定されている場合を除き、ディレクトリ・サーバーおよびそのすべてのコマンド行ユーティリティに使用されるJVMが設定されます。


7.1.2 JVMオプションの構成

次の表では、サーバーのパフォーマンスに影響を与える可能性があるJavaオプションの概要を示します。これらのオプションの一部はSun JVMにのみ適用されるため注意してください。

条件 オプション 説明

-server

サーバー・アプリケーションの実行時の最適化が選択されます。ディレクトリ・サーバーは起動とウォームアップの時間が長くなりますが、大幅に最適化されスループットが向上します。


-d64

64ビット・マシンのみが対象です。デフォルトでは、アーキテクチャに関係なくディレクトリ・サーバーにより32ビットのJVMが選択されます。(4GBを超える)大きなJVMヒープが必要であり、アーキテクチャが64ビットである場合、このオプションを指定する必要があります。


-Xms2G -Xmx2G

JVMに使用できる初期メモリー・サイズおよび最大メモリー・サイズがそれぞれ選択されます。これらの値はJVMヒープに使用され、ディレクトリ・サーバーとそのデータベース(DB)キャッシュ(単数または複数)のメモリーが予約されます。使用可能なメモリー量を増やすとパフォーマンスが向上する場合がありますが、増やしすぎると、フル・ガベージ・コレクションを実行するための一時停止時間が長くなるという悪影響が生じる可能性があります。したがって、初期サイズおよび最大サイズは同じ値に設定する必要があります。一般的なガイドラインとして、Oracle Berkeley Java Edition (JE)データベース・フォルダ(instance-dir/OUD/db/userRoot)のサイズに注目します。フォルダの結合サイズに基づいて、DBキャッシュに対して予約するメモリー量を決定します。この値を決定した後、ローカルDBバックエンド・プロパティdb-cache-percentまたはdb-cache-size、およびその他のJVMオプションを適宜チューニングします。サーバー実行時の追加メモリーの許容には注意してください。たとえば、1GBの単一データベースがあり、完全にメモリーに格納する場合、ディレクトリ・サーバーの効率的なパフォーマンスを得るには、DBキャッシュ用に60%が予約された2GBのヒープで十分です。この設定をテストするには、preload-time-limitプロパティを使用してローカル・データベース・バックエンドをデータベースにプリロードします。

4GBを超えるJVMヒープには64ビットのJVMが必要です。


DisableExplicitGC

外部アプリケーションで負荷のかかるガベージ・コレクションが強制されることを防ぎます。jstatdまたはその他のRMIベースのアプリケーションを使用してOracle Unified Directoryを監視している場合、予期しない一時停止を回避するために、このオプションの使用を検討する必要があります。


-XX:NewSize=512M

スループットが遅い環境では、このオプションを使用してJVMの若い世代のサイズを増やすことを検討してください。デフォルトでは、若い世代はかなり小さく、スループットの高いシナリオでは大量のガベージが生成される可能性があります。今度はこのガベージ・コレクションにより、JVMにおいて一時オブジェクトが誤って古い世代に格納されます。

サーバーのみ

-XX:+UseConcMarkSweepGC

CMSガベージ・コレクタが選択されます。このガベージ・コレクタは、一時停止時間を短縮するために設定されます。これによりJavaアプリケーションの平均スループットが低下しますが、CPUに負担をかけるガベージ・コレクションの時間が大幅に短縮されます。このオプションは、レスポンス時間に制約がある環境では必須です。


-XX:CMSInitiatingOccupancyFraction=70

コレクションが開始されるレベルが選択されます。デフォルト値は68%です。

オフラインのインポートのみ

-XX:+UseParallelOldGC

古い世代の並列ガベージ・コレクタが選択されます。このガベージ・コレクタは、スループットを上げるために設定されます。これにより、インポートほど重要ではなく、発生頻度の低いstop-the-worldガベージ・コレクションを犠牲にして、import-ldifユーティリティの平均スループットが最大化されます。


-XX:+PrintGCDetails

ガベージ・コレクションの詳細が印刷されます。


-XX:+PrintGCTimeStamps

デバッグに役立つガベージ・コレクションのタイム・スタンプが印刷されます。

その他のアプリケーション(dsconfigなど)

-client

クライアント・アプリケーションの実行時の最適化が選択されます。コンパイルのオーバーヘッドが低下するため、アプリケーションの起動が速くなり、レスポンスが向上します。


-Xms8m

アプリケーションに対して小さい初期JVMヒープ・サイズが選択されます。


7.1.3 特定のユーティリティに対するJAVA_HOME環境変数の指定

  1. Javaプロパティ・ファイルをcommand-name.java-home=jvmのように編集します。

    たとえば、オフラインのインポートについて特定のJDK 1.6を指定するには、java.propertiesファイル内のimport-ldif.offlineで始まる行を、import-ldif.offline.java-home=/usr/jdk1.6のように編集します。

  2. dsjavapropertiesコマンドを実行してプロパティを適用します。

7.1.4 特定のユーティリティに対するJava引数の指定

  1. Javaプロパティ・ファイルをcommand-name.java-args=argumentsのように編集します。

    たとえば、オンラインのエクスポートに最大ヒープ・サイズとして256MBが使用されるよう指定するには、java.propertiesファイル内のexport-ldif.onlineで始まる行を、export-ldif.online.java-args=-Xms256m -Xmx256mのように編集します。

  2. dsjavapropertiesコマンドを実行してプロパティを適用します。

7.2 インストール時のJavaランタイム設定の構成

GUIインストーラを使用する場合、第3.1項「GUIを使用したディレクトリ・サーバーの設定」の説明に従い、インストール・プロセスの一部としてJavaランタイム設定を構成できます。Javaランタイム設定を構成するには、「実行時オプションを指定中」画面で「変更」をクリックします。次の設定を構成できます。


注意:

oud-setupコマンドを使用してディレクトリ・サーバーをインストールする場合、第3.2項「CLIを使用したディレクトリ・サーバーの設定」の説明に従い、インポート・タスクのJava設定を指定することもできます。このオプションは、プロキシ・サーバーのインストール時には使用できません。


7.3 データベース・キャッシュの設定

ディレクトリ・サーバーの全体的なパフォーマンスのクリティカル・コンポーネントは、データベース(DB)キャッシュのサイズです。特定のメモリー設定は、使用しているハードウェア、ディレクトリ内のエントリ数およびパフォーマンス要件に応じて決定する必要があります。たとえば、import-ldifユーティリティを使用してデータをインポートする場合、潜在的なデータ・キャッシュの削除の問題を最小限に抑えたり回避できるような方法でディレクトリ・サーバーを構成する必要があります。理想的には、DBキャッシュを、データベース全体が確実にキャッシュに収まるような値に設定します。必要なヒープ・サイズは、エントリ数とそのサイズによって決まります。たとえば、個々が10KBの200Kのエントリをインポートしている場合、JVMヒープ・サイズに2GBを指定してから、ディレクトリ・サーバーのランタイム環境に少なくとも1GB、残りをDBキャッシュに割り当てます。

7.3.1 データベース・キャッシュの設定

DBキャッシュを設定するには、dsconfigコマンド行ユーティリティでdb-cache-percentプロパティまたはdb-cache-sizeプロパティを構成します。db-cache-percentプロパティおよびdb-cache-sizeプロパティは、サーバーがDBキャッシュに使用できる最大サイズを表します。このいずれかのプロパティで設定されたサイズよりもデータベースが小さい場合、データベースのサイズのみがJVMヒープに割り当てられます。


注意:

db-cache-percentプロパティを設定する必要がある場合、db-cache-sizeプロパティはデフォルト値である0MBに保持する必要があります。db-cache-sizeプロパティはdb-cache-percentプロパティより優先されます(両方に値が指定されている場合)。


  1. 適切なディレクトリに移動します。

    (UNIX, Linux)  $ cd instance-dir/OUD/bin
    (Windows)      C:\> cd instance-dir\OUD\bat
    
  2. 次に示すように、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に割り当てられます。