前へ     目次     索引     DocHome     次へ     
iPlanet Directory Server 5.1 管理者ガイド



第 14 章   Directory Server の性能の調整


この章では、性能を最適化するための iPlanet Directory Server とともに提供されるツールについて説明します。また、ディレクトリの性能を向上させるためのヒントも示します。

この章は、次の節で構成されています。



サーバの性能の調整

クライアントの検索要求を処理するために使用される資源の量を制限することによって、サーバの性能を管理することができます。次の項目を定義できます。

  • 検索操作に応答してクライアントに返される最大エントリ数 (サイズ制限属性)

  • 検索要求の実行に費やされる最大実時間 (秒) (時間制限属性)

  • 接続がアイドル状態になってから接続が切断されるまでの時間 (秒) (アイドルタイムアウト属性)

  • Directory Server で使用可能なファイルディスクリプタの最大数 (ファイルディスクリプタの最大数属性)

性能を最適化するように Directory Server を構成するには、次の手順を実行します。

  1. Directory Server Console で「構成」タブを選択し、左側の区画のナビゲーションツリーで一番上にあるエントリを選択します。

    右側の区画に表示されるタブによって、サーバ全体に影響する構成の属性を制御できます。

  2. 右側の区画にある「性能」タブを選択します。

    現在のサーバ性能の設定が表示されます。

  3. 「サイズ制限」テキストボックスに新しい値を入力して、検索操作への応答としてクライアントに返される最大エントリ数を設定します。

    制限を設定しない場合は、テキストボックスに -1 を入力します。

  4. 「時間制限」テキストボックスに、サーバが検索要求を実行するために使用できる最大実時間 (秒) を入力します。

    制限を設定しない場合は、テキストボックスに -1 を入力します。

  5. 「アイドルタイムアウト」テキストボックスに、アイドル状態の接続が切断されるまでの時間 (秒) を入力します。

    制限を設定しない場合は、テキストボックスにゼロ (0) を入力します。

  6. 「ファイルディスクリプタの最大数」テキストボックスに、Directory Server で使用可能なファイルディスクリプタの最大数を入力します。

    このオプションは、Windows NT および IBM AIX プラットフォーム上では使用できません。このパラメタについては、『iPlanet Directory Server 構成、コマンド、およびファイルのリファレンス』を参照してください。

これらのパラメタがサーバの検索性能に及ぼす影響については、「インデックスについて」を参照してください。



データベースの性能の調整



この節は、データベースの性能の調整方法について次の各項目で説明します。


検索性能の最適化

データベースの設定を調整することによって、サーバの検索性能を向上させることができます。性能に影響を与えるデータベース属性では、主にサーバで使用可能なメモリ量を定義します。

検索操作におけるキャッシュヒット率を向上させるには、Directory Server がデータベースキャッシュに維持できるデータの量を増やします。このためには、キャッシュに格納されるエントリ数とキャッシュサイズを増やします。これらの属性に対して設定できる最大値は、マシン上の実際のメモリ容量によって決まります。マシンのメモリ容量は、概算で次の値よりも大きくする必要があります。

(キャッシュ内の最大エントリ数 + 最大キャッシュサイズ) x 平均エントリサイズ

これらの 2 つの属性を変更する場合は、注意が必要です。これらの属性によってどの程度のサーバ性能の向上が望めるかは、データベースのサイズ、マシン上の使用可能な物理的メモリ容量、およびディレクトリ検索がランダムかどうか (つまり、ディレクトリクライアントの検索が、ランダムに広く分散したディレクトリデータを対象としているかどうか) によって異なります。

データベースがメモリ容量に対して大きすぎる場合や、検索がランダムである場合は、これらの属性値を大きくしても、ディレクトリ性能を向上させることはできません。逆に、これらの属性値を変更することによって、全体的な性能が低下することもあります。

次に示す属性は調整可能です。

  • 他のすべてのデータベースインスタンスを管理するデータベースの属性。Directory Server Console で参照できるデータベースは、ディレクトリデータを含むデータベースと NetscapeRoot データベースのみ。ただし、サーバでは、これらを管理するために他のデータベースが使用される。このデータベースでは、次に示す属性を変更して性能を向上させることができる

    • すべてのデータベースで使用できるメモリの量 (最大キャッシュサイズ属性)

    • 検索要求に応答して確認される最大エントリ数 (検索制限属性)

  • ディレクトリデータを格納するために使用する各データベースの属性。NetscapeRoot データベースのサーバ構成データを含む。これらのデータベースでは、次に示す属性を変更して性能を向上させることができる

    • サーバのメモリに保持するエントリの最大数 (最大キャッシュエントリ数属性 )

    • キャッシュエントリで使用できるメモリの量 (キャッシュに使用可能なメモリ属性)

他のすべてのデータベースインスタンスに適用されるデフォルトのデータベース属性を構成するには、次の手順を実行します。

  1. Directory Server Console で「構成」タブを選択し、ナビゲーションツリーの「データアイコン」を展開して、Database Settings ノードを強調表示します。

    右側の区画に「データベース」タブが表示されます。

  2. 右側の区画で「LDBM プラグイン設定」タブを選択します。

    このタブには、このサーバ上に格納されているすべてのデータベースのデータベース属性が含まれています。

  3. 「最大キャッシュサイズ」フィールドに、すべてのデータベースで使用できるメモリの量を入力します。

  4. 検索制限フィールドに、検索要求に応答して確認される最大エントリ数を入力します。

    制限を設定しない場合は、テキストボックスに -1 を入力します。ディレクトリマネージャとしてディレクトリにバインドする場合は、デフォルトで検索制限は無制限になり、ここでの設定に優先します。

ディレクトリデータを格納する各データベースの属性を構成するには、次の手順を実行します。

  1. Directory Server Console で「構成」タブを選択し、ナビゲーションツリーの「データアイコン」を展開します。調整するデータベースの接尾辞を展開し、データベースを強調表示します。

    右側の区画に表示されるタブによって、このデータベースのパラメタ設定を制御できます。

  2. 右側の区画で「データベースの設定」タブを選択します。

  3. 「最大キャッシュエントリ数」フィールドに、サーバのメモリに保持するエントリ数を入力します。

  4. 「キャッシュに使用可能なメモリ」フィールドに、キャッシュエントリで使用できるメモリの量を入力します。

    LDIF で非常に大きなデータベースを作成する場合は、マシンの使用可能メモリに応じて、この属性をできるだけ大きな値に設定します。このパラメタの値を大きくするほど、データベースの作成速度は高まります。

    データベースの作成が終了したら、サーバを実務の環境で稼動させる前に、このパラメタをいくらか小さな値に戻してください。


トランザクションログの調整

すべての Directory Server には、管理するすべてのデータベースに対する操作を記録するトランザクションログがあります。書き込みなどのディレクトリデータベース処理が実行されると、その処理はトランザクションログに記録されます。最高の性能を実現するために、ディレクトリはすぐには処理を開始しません。処理の内容は、処理が完了するまで Directory Server 上の一時的なメモリキャッシュに格納されます。

停電などの問題によってサーバが異常終了すると、キャッシュに格納された問題発生前のディレクトリ変更に関する情報は失われます。ただし、サーバを再起動すると、ディレクトリが自動的にエラー状態を検出し、データベーストランザクションログを使用してデータベースを復元します。

データベーストランザクションログへの記録とデータベースの復元は自動的に行われるのでユーザによる操作は必要はありませんが、一部のデータベーストランザクションログ属性を調整して、性能を最適化することができます。



警告  

トランザクションログ属性は、システムの変更と診断だけを目的としています。これらの設定は、必ず iPlanet プロフェッショナルサービスまたは iPlanet サポートの指示に従って行なってください。

これらの属性や他の構成属性の設定に矛盾があると、ディレクトリの動作が不安定になることがあります。  




データベーストランザクションログの保存場所の変更

デフォルトでは、データベーストランザクションログファイルは、データベースファイルとともに次のディレクトリに格納されます。

Solaris 9 プラットフォーム

/var/ds5/slapd-serverID/db

その他のプラットフォーム

/usr/iplanet/servers/slapd-serverID/db

異常終了したディレクトリデータベースの復元を補助することがトランザクションログの目的なので、データベーストランザクションログとディレクトリデータベースは別のディスクに格納することをお勧めします。また、データベーストランザクションログを別の物理ディスク上に置くと、ディレクトリの性能が向上します。

データベーストランザクションログファイルの保存場所を変更するには、次の手順を実行します。

  1. Directory Server を停止します。

    手順については、「Console からのサーバの起動と停止」を参照してください。

  2. ldapmodify コマンド行ユーティリティを使用して、cn=config,cn=ldbm database,cn=plugins,cn=config エントリに nsslapd-db-logdirectory 属性を追加します。属性のログディレクトリは、絶対パスで指定します。

    nsslapd-db-logdirectory 属性の構文については、『iPlanet Directory Server 構成、コマンド、およびファイルのリファレンス』を参照してください。ldapmodify の使い方については、「ldapmodify を使用したエントリの追加と修正」を参照してください。

  3. Directory Server を再起動します。


データベースのチェックポイント間隔の変更

Directory Server によって、トランザクションログに記録された処理が一定の間隔でディスクに書き込まれ、データベーストランザクションログにチェックポイントエントリが記録されます。チェックポイントエントリは、すでにディレクトリに書き込まれた変更を示すことによって、トランザクションログのどこから復元を開始するかを示し、復元処理にかかる時間を短縮します。

デフォルトでは、Directory Server は、データベーストランザクションログに 60 秒ごとにチェックポイントエントリを送るように設定されています。チェックポイント間隔を大きくすると、ディレクトリの書き込み処理の性能が向上します。ただし、チェックポイント間隔を大きくすると異常終了後のディレクトリデータベースの復元にかかる時間が長くなり、データベーストランザクションログファイルも大きくなるので、結果として必要なディスクの空き容量も大きくなります。したがって、データベースの最適化について十分な知識を持ち、変更による効果を正確に予測できる場合を除き、できるだけこの属性は変更しないでください。

サーバの実行中にチェックポイント間隔を変更するには、次の手順を実行します。

  1. ldapmodify コマンド行ユーティリティを使用して、cn=config,cn=ldbmdatabase,cn=plugins,cn=config エントリに nsslapd-db-checkpoint-interval 属性を追加します。

    nsslapd-db-checkpoint-interval 属性の構文については、『iPlanet Directory Server 構成、コマンド、およびファイルのリファレンス』を参照してください。ldapmodify の使い方については、「ldapmodify を使用したエントリの追加と修正」を参照してください。


永続トランザクションの無効化

永続トランザクションログでは、一時的なデータベーストランザクションログも実際にディスクに書き込まれます。

永続トランザクションログが無効になっていると、すべてのディレクトリデータベース処理がデータベーストランザクションログファイルに書き込まれますが、すぐにディスクに物理的に書き込まれるわけではありません。システムのクラッシュ時に、ディレクトリの変更が論理的なデータベーストランザクションログファイルに書き込まれただけで、物理ディスクに書き込まれていない場合は、その変更を復元することはできません。永続トランザクションが無効になっていると、復元されたデータベースの内容は以前と同じものになりますが、システムのクラッシュ直前に完了した LDAP 書き込み処理の結果は反映されません。

デフォルトでは、永続トランザクションログは有効になっています。永続トランザクションログを無効にするには、次の手順を実行します。

  1. Directory Server を停止します。

    手順については、「コマンド行からのサーバの起動と停止」を参照してください。

  2. ldapmodify コマンド行を使用して、cn=config,cn=ldbm database,cn=plugins,cn=config エントリに nsslapd-db-durable-transactions 属性を追加し、この属性の値を off にします。

    nsslapd-db-durable-transactions 属性の構文については、『iPlanet Directory Server 構成、コマンド、およびファイルのリファレンス』を参照してください。ldapmodify の使い方については、「ldapmodify を使用したエントリの追加と修正」を参照してください。

  3. Directory Server を再起動します。


トランザクションバッチの指定

トランザクションに完全な永続性が要求されない場合に更新の性能を向上させるには、nsslapd-db-transaction-batch-val 属性を使用してトランザクションログにコミットされる前にバッチ (一括) 処理されるトランザクション数を指定します。この属性に 0 以上の値を設定すると、待ち行列内のトランザクション数が属性値に達するまでサーバによるトランザクションのコミットが遅延されます。トランザクションのバッチ処理を有効にするには、nsslapd-db-durable-transaction 属性を on に設定する必要があります。

サーバの実行時にトランザクションのバッチ処理を指定または変更するには、ldapmodify コマンド行ユーティリティを使用して、cn=config,cn=ldbm database,cn=plugins,cn=config エントリに nsslapd-db-transaction-batch-val 属性を追加します。

nsslapd-db-transaction-batch-val 属性の構文および値については、『iPlanet Directory Server 構成、コマンド、およびファイルのリファレンス』を参照してください。ldapmodify の使い方については、「ldapmodify を使用したエントリの追加と修正」を参照してください。



その他の調整のヒント



ここでは、考慮すべき性能についてのヒントおよび概念について説明します。


cn=config の下へのエントリの作成

cn=config エントリは、通常のエントリと同じように拡張性が高いデータベースではなく、単純で平面的な dse.ldif 構成ファイルに格納されます。その結果、多くのエントリ、特に頻繁に更新されるエントリが cn=config の下に格納されている場合は、性能が低下します。

性能上の理由から、単純なユーザエントリを cn=config の下に格納することはお勧めできませんが、ディレクトリマネージャまたはレプリケーションマネージャ (サプライヤバインド DN) エントリなどの特別なユーザエントリを cn=config の下に格納すると、構成情報を一元化できるため便利です。


前へ     目次     索引     DocHome     次へ     
Copyright © 2001 Sun Microsystems, Inc. Some preexisting portions Copyright © 2000 Netscape Communications Corp. All rights reserved.

Last Updated February 26, 2002