ヘッダーをスキップ
Oracle® Fusion Middlewareパフォーマンスおよびチューニング・ガイド
11gリリース1(11.1.1)
B61006-01
  ドキュメント・ライブラリへ
ライブラリ
製品リストへ
製品
目次
目次
索引
索引

戻る
戻る
 
次へ
次へ
 

19 Oracle Virtual Directoryのパフォーマンス・チューニング

この章では、Oracle Virtual Directoryのチューニングのヒントを示します。この章の内容は次のとおりです。

19.1 Oracle Virtual Directoryについて

Oracle Virtual DirectoryはLDAPバージョン3対応のサービスです。これを使用すると、1つ以上の企業データ・ソースを抽象化したビューが得られます。Oracle Virtual Directoryでは、複数のデータ・ソースが単一のディレクトリ・ビューに一体化されます。そのため、LDAP対応のアプリケーションを様々なディレクトリ・サーバー・データ・ストアと統合できます。

この章の内容は、読者が『Oracle Fusion Middleware Oracle Virtual Directory管理者ガイド』の概念および管理についての情報に目を通しているものと想定して書かれています。


注意:

Oracle Virtual Directoryのデフォルト構成は、多くの本番用デプロイメントおよびテスト用デプロイメントにとって最適なものではありません。最適なパフォーマンスおよび可用性を得るために、「基本的なチューニング構成」に示す推奨事項を実施することをお薦めします。

19.2 基本的なチューニング構成

この項のチューニング構成は、ほとんどのデプロイメントおよび使用状況に当てはまります。各構成を検討し、各自のユースケース・シナリオに適したものを実装することを強くお薦めします。チューニングの内容は、表19-1にまとめてあります。

表19-1 基本的なチューニング構成

構成属性 カテゴリ デフォルト値 推奨値 注意

スレッド

リスナー・プロパティ

10

10 * Oracle Virtual Directoryサーバーが使用できる中央処理装置(CPU)の数

推奨値が当てはまるのは、アクティブなLDAPリスナーのみです。

ワーク・キューの容量

リスナー・プロパティ

1024

予想される最大同時クライアント数

32ビットのシステムでは最大2GB、64ビットのシステムではそれ以上の値を指定できます。

最大プール接続数

LDAPアダプタ・プロパティ

10

このアダプタを使用するすべてのアクティブ・リスナーのThreadsパラメータの値の合計

バックエンドのディレクトリ・サーバーが、ここに指定した数の接続を処理できることを確認してください。

最大ヒープ・サイズ

システム・プロパティ

256MB

32ビットのシステムでは最大2GB、64ビットのシステムではそれ以上の値を指定できます。

値を大きくすると、メモリー不足エラーの発生を防ぐことができます。構成した値を処理するのに十分なRAMがシステムにあることを確認してください。


19.3 その他のチューニング構成

Oracle Virtual Directoryデプロイメントのユースケース・シナリオによっては、次のチューニング構成を行うとパフォーマンスが向上することがあります。

19.3.1 データベース・アダプタ

データベース・アダプタは、あらゆる機能を備えたLDAPからJDBCへのゲートウェイで、すべてのLDAP操作(add、bind、delete、baseSearch、modify、wildCardSearch)を、プリコンパイルされた同等のSQL文コードに変換するトランスレーションをサポートしています。データベース・アダプタは、JDBCクラス・ライブラリを使用して、LDAP検索を実行するためのデータベース接続を形成します。一般に、データベース・ライブラリはデータベース・ベンダーから提供されます。


注意:

パフォーマンスを改善するため、データベース・アダプタを使用する前にデータベースをチューニングします。詳細は、データベースのドキュメントを参照してください。使用しているデータベースがOracleデータベースの場合は、『Oracle Databaseパフォーマンス・チューニング・ガイド』を参照してください。

最適なパフォーマンスを得るために、Oracle Virtual Directoryデータベース・アダプタの構成対象となるデータベース・スキーマについて、次の構成オプションを検討してください。

  • 一般に、マップされたLDAP属性をLDAP検索フィルタで使用する場合は、基礎となるデータベース・スキーマのマップされた列に索引を定義します。

  • LDAP検索フィルタで使用するLDAP属性に、caseIgnoreMatchの一致するルールがある場合、参照のパフォーマンスを最適化するには、この属性にマップされたデータベース表の列にファンクション索引を定義する必要があります。

    たとえば、LDAP属性CNがデータベース・スキーマ列EMP.NAMEにマップされている場合、CN属性を含むLDAP検索フィルタのパフォーマンスを最適化するには、UPPER(EMP.NAME)にファンクション索引が必要です。

    ファンクションベースの索引の詳細は、『Oracle Databaseパフォーマンス・チューニング・ガイド』のパフォーマンスを考慮したファンクション索引の使用方法に関する項を参照してください。

表19-2に、その他のデータベース・アダプタ設定を示します。

表19-2 データベース・アダプタ設定

パラメータ 注意

アダプタ

デフォルト: アクティブ

アダプタは、アクティブまたは非アクティブとして構成できます。サーバーの再起動中またはサーバーの起動時に非アクティブなアダプタを起動することはできません。「非アクティブ」設定の目的は、古い構成設定を構成から削除せずに使用可能な状態(スタンバイ状態)にしておくことです。

最大接続数

デフォルト: 10接続

このプロパティでは、データベース・アダプタがデータベースとの間に作成できる接続の最大数を定義します。

データベース接続タイムアウト

デフォルト: 10秒

アダプタのデータベース接続タイムアウト・プロパティは、最大接続数の制限に達した後、キャッシュ内で接続が使用可能になるのを待つLDAPリクエストを制御します。

定義した秒数以内に接続が使用可能にならなければ、LDAPリクエストは失敗します。データベース接続タイムアウト・システム・プロパティを使用しない場合、LDAPリクエストは接続が使用可能になるのを10秒間待ちます。


19.3.2 結合アダプタ

結合アダプタを使用する場合は、適切なソースのみを結合します。たとえば、プライマリ・ソースのcn=usersブランチにある属性のみをリンクする必要がある場合、このブランチのみを公開するプライマリ・アダプタを作成します。次に、そのアダプタを使用した結合ルールを作成します。こうすることで、対応するリンク先エントリが存在しない可能性のあるエントリの結合を試みる必要性が減ります。


ヒント:

結合ルールで使用する属性が正しく索引付けされていることを必ず確認してください。

19.3.3 フィルタの一般的なチューニング

既知のクライアント検索フィルタが特定のアダプタに該当しない場合、そのフィルタをすべての適用可能な対象外フィルタに適用すると、パフォーマンスが向上するとともに、ネットワーク・トラフィックが減少します。

19.3.4 ロード・バランサのローカル・ストア・アダプタのチューニング

ロード・バランサの中には、LDAPサーバーが稼働しているか停止しているかをそのサーバーに問い合せて判断するものがあります。ロード・バランサがこの機能を使用している場合は、独立したネームスペース(dc=loadbalancerなど)を持つローカル・ストア・アダプタを作成して、ロード・バランサ専用とすることを検討してください。おそらくロード・バランサがパフォーマンスに与える影響は目に見えるほどではありませんが、ロード・バランサを独立したネームスペース内に保持することで、トラブルシューティング時にロード・バランサのKeepAliveリクエストによって大きなログ・ファイルが作成されるのを防ぎやすくなります。

19.3.5 Cacheプラグインのチューニング

Cacheプラグインは、Oracle Virtual Directoryにメモリー内キャッシュを提供します。あらゆるソースからの問合せ結果をキャッシュして、LDAPクライアントが再利用できるようにする機能を持ちます。このプラグインを使用すると、問合せが何度も繰り返されるアプリケーションのパフォーマンスを改善できます。

キャッシュの操作および構成を確認するには、VEロギング・レベルを「ダンプ」に設定して詳細を参照します。キャッシュは通常のプラグインであるため、Oracle Virtual Directory内の任意の場所で実行するように構成できます。グローバルに実行することも、単一アダプタのコンテキスト内で実行することも可能です。また、標準のプラグイン構成に用意されているネームスペース・フィルタ処理を使用して、キャッシュを特定のネームスペースに制限することもできます。

19.3.5.1 キャッシュ・ヒット・ロジック

キャッシュは、問合せ結果を格納して、後で使用できるようにする機能を持ちます。問合せが同じユーザーによって繰り返され、同一の属性または属性のサブセットがリクエストされる場合、Oracle Virtual Directoryがソースから情報を取得するのではなく、キャッシュから問合せの結果が返されます。キャッシュ・ヒットをユーザー間で共有するようプラグインを構成することもできます。

パス資格証明がバックエンド・ソースに渡されず、Oracle Virtual Directoryのみによってセキュリティが実施されている場合以外は、ユーザー間でキャッシュ・エントリを共有しないでください。ユーザー間でキャッシュ・ヒットを共有する場合は、より強力な権限を持つユーザーのキャッシュ結果に他のユーザーがアクセスして、見てはならない情報を目にしてしまう可能性もあるため、十分に注意する必要があります。

19.3.5.2 Cacheプラグインのメモリー管理

このプラグインは、キャッシュを定期的に確認し、期限切れの結果や以前の変更トランザクションで無効にされたエントリがないかどうかチェックします。キャッシュの割当て制限を超えた場合は、使用頻度が最も低い(LRU)問合せをパージしてメモリーのサイズを小さくします。

表19-3に、メモリー管理プラグインのチューニングに使用するパラメータを示します。

表19-3 メモリー管理プラグインの設定

パラメータ 注意

Size

デフォルト: 1000エントリ

一度にキャッシュ可能なエントリの最大数。

MaxResultSize

デフォルト: 1000エントリ

特定の問合せに対してキャッシュ可能なエントリの最大数。

Trimsize

デフォルト: 1000エントリ

最大キャッシュ・サイズを超えたときに、キャッシュ・マネージャがその時点のエントリ数から減らす量。注意: 必要に応じて、まず期限切れの問合せをパージし、次に使用頻度の最も低い問合せから順にパージすることで、切り捨てが実行されます。

MaximumAge

デフォルト: 600秒

キャッシュに格納される問合せ/エントリの最大有効期間(秒)。

MaintenanceInterval

デフォルト: 60秒

キャッシュ・マネージャが期限切れの問合せの有無をチェックする間隔(秒)。

BySubject

デフォルト: 1(共有しない)

キャッシュ結果をサブジェクト間で共有するかどうかを示すフラグ(1または0)。値1は、結果をサブジェクト間で共有しないことを示します。


19.3.6 LDAPリスナーのチューニング

表19-4に、LDAPリスナーのチューニングに使用するパラメータを示します。

表19-4 リスナー・パラメータ

パラメータ 注意

バックログ

デフォルト: 128リクエスト

サーバーが新規接続の試行を拒否し始めるまでキューにためることのできる、保留中の接続リクエストの最大数を指定します。

ほとんどの場合、デフォルト値で十分です。この値の変更が必要になることはほとんどありません。

アドレスの再利用

デフォルト: False

このオプションにより、LDAPリスナーがソケット・ディスクリプタを再利用するかどうかを決定します。

有効にすると、Oracle Virtual Directoryサーバーのリスン・ソケットでSO_REUSEADDRソケット・オプションが使用され、TIME_WAIT状態のクライアントのソケット・ディスクリプタを再利用できるようになります。

キープ・アライブ

デフォルト: False

このオプションにより、LDAP接続でTCPキープ・アライブを使用するかどうかを決定します。

有効にすると、SO_KEEPALIVEソケット・オプションが使用されます。これは、関連付けられた接続がまだ有効であることを確認するためにTCPキープ・アライブ・メッセージが定期的にクライアントに送信されることを示します。

TCP遅延なし

デフォルト: True

このオプションにより、LDAP接続でTCP遅延なしを使用するかどうかを決定します。

有効にすると、TCP_NODELAYソケット・オプションが使用されます。この場合、クライアントへのレスポンス・メッセージは、追加のレスポンス・メッセージを同一のパケットで送信できるかどうかの判断を待たずに、即座に送信されます。

読取りタイムアウト

デフォルト: 0

このオプションにより、指定されたタイムアウト(ミリ秒)でSO_TIMEOUTを有効または無効にします。

このオプションをゼロ以外のタイムアウトに設定すると、Oracle Virtual Directoryサーバーへのクライアント接続は、その時間のみアイドル状態を維持できます。接続のアイドル期間が指定されたタイムアウトを超えると、クライアント接続は終了します。

ゼロのタイムアウトは無限タイムアウトとみなされます。

警告: このオプションは、Oracle Virtual Directoryバージョン10gのvde.soTimeoutFrontendシステム・プロパティに相当します。vde.soTimeoutFrontendシステム・プロパティは11gではサポートされていません。ユーザーは、システム・プロパティに指定した値を変更する必要があります。

10gから11gへの値のマッピングは次のとおりです。「有効」=0

「無効」=ゼロ以外の時間(ミリ秒)


19.3.7 サーバーのチューニング

表19-5に、サーバーのチューニングに使用する基本的なパラメータを示します。

表19-5 サーバー・パラメータ

パラメータ 注意

匿名検索制限

デフォルト: 1000

匿名クライアントに対して返すエントリの最大数。

接続タイムアウト

デフォルト: 120(分)

「接続タイムアウト」システム・プロパティは、正しく接続をクローズしないクライアントが原因でサービスが停止するのを防ぐために使用します。値は、Oracle Enterprise Managerの「サーバー・プロパティ」ページで設定できます。

警告: 0に設定すると、接続タイムアウトの実施は無効化され、非アクティブの期間に関係なくクライアント接続をクローズできなくなります。このシステム・プロパティは、割当て制限から除外された、または割当て制限を実施できないIPアドレスおよびサブジェクトには適用されません。

ロギング・レベル

デフォルト: Error:1(Severe)

デフォルトでは、ロギングがNOTIFICATION:1に設定されている場合にのみ、ログ・メッセージがaccess.logファイルに書き込まれます。パフォーマンスを確保するために、デフォルトのログ・レベルをそのまま使用するか、WARNING:1(WARNING)を使用して、access.logファイルに書き込まれる情報の量を制限することを検討してください。