次のセクションでは、UNIXシステム上でeDirectoryのパフォーマンスを改善する方法について説明します。
LinuxおよびSolaris上のNovell eDirectoryは、動的に調整されるスレッドプールを使用して、クライアントの要求を処理します。スレッドプールは自動的に調整され、多くの場合は最適なパフォーマンスが提供されます。ただし、次のパラメータを/etc/nds.confファイルに設定することによって、サーバへの負荷が急激に高くなった場合にスレッドの起動により発生する遅延を回避できます。
Novell eDirectoryでは永続キャッシュを使用しているため、サーバに対して行われた変更はベクトルに保持されます。変更の途中でサーバがクラッシュした場合、サーバが稼働状態に戻ると、eDirectoryはより高速でロードして数秒間で変更を同期させます。Novell eDirectoryは、システムエラーが発生した場合、ロールバックモデルとログファイルを使用してトランザクションをロールフォワードします。
eDirectoryのキャッシュは最初16MBに設定され、その50%がブロックキャッシュに、残りの50%がレコードキャッシュに割り当てられます。15分後、eDirectoryはキャッシュのしきい値を変更し、キャッシュに使用可能な空きメモリの51%まで初期化できるようにしますが、少なくとも24MBはOS用に残します。このアルゴリズムは、使用可能な空きメモリ量を判別できるようにするコールをホストOSがサポートしている場合のみ使用されます。
eDirectoryキャッシュの最適化は、次の方法で行えます。
上記のアルゴリズムはWindowsおよびNetWareでは有効ですが、UNIXシステムでは機能しません。UNIXシステムでは、OSによって報告される使用可能な空きメモリは、他のオペレーティングシステムよりも少なくなります。これは、UNIX OSがファイルシステムブロック、頻繁に実行するプログラム、ライブラリなどの内部キャッシング用に空きメモリを使用するためです。このメモリ割り当てに加え、通常、UNIX上のライブラリは解放されたメモリをOSに戻しません。
このような理由で、キャッシュには固定量のRAMを割り当てることをお勧めします。
UNIXシステムで固定量のRAMを割り当てるには、次のいずれかの操作を行います。
eDirectoryデータベースファイル(DIBセット)が格納されたディレクトリ(通常、/var/nds/dib)と同じディレクトリに、_ndsdb.iniという名前のファイルを作成します。
次に示すパラメータを、_ndsdb.iniフィアルに追加します。
[エージェント環境設定]をクリックします。
[データベースキャッシュ]をクリックし、次の情報を確認します。
次のオプションから選択します。
[送信]をクリックします。
デフォルトでは、eDirectoryは動的キャッシュを使用します。eDirectoryのキャッシュサイズの増加に使用できる十分なRAMがある場合は、eDirectoryキャッシュへのRAMの割り当てを増加することによって、大容量データベースを使用する場合のeDirectoryのパフォーマンスを大幅に向上できます。
次の表に示すパラメータを調整すれば、eDirectoryのパフォーマンスを向上できます。
このアルゴリズムに従うと、Novell eDirectoryのデフォルト設定は次のようになります。
cache=dyn,%:51,min:16777216,max:0,leave:0
この設定は、次のことを示しています。
eDirectoryは、すべてのアプリケーションが開始され、システムが安定するように、16MBのハードメモリ制限で動作します。
eDirectoryが合計メモリの割合を使用するように設定することもできます。これを行うには、次のようにキャッシュを指定します。
cache=hard,total,%:percentage_of_total_memory_in_bytes
インポート/エクスポート変換(ICE)ユーティリティを使用するバルクロードのパフォーマンスは、アイテムの数によって影響されることがあります。パフォーマンス低下の最も一般的な原因には、ディスクI/Oの管理不良やNovell eDirectoryキャッシュのメモリ割り当て不足があります。
eDirectoryが実質的な唯一のアプリケーションである場合、eDirectoryキャッシュを合計メモリの80%まで設定できます。割り当てられたキャッシュは、最終的にはすべてが使用されます。高揮発性のデータを処理している場合、eDirectoryのパフォーマンスはキャッシュ量を増やすことで向上します。
重要: サーバがeDirectory以外のアプリケーションやサービスのホストサーバとなっている場合は、合計メモリの40%を超えるキャッシュメモリサイズを設定しないでください。テスト済みの最小キャッシュサイズは0で、最大キャッシュサイズは3GBです。適切なキャッシュサイズは、同じサーバで実行される他の処理が必要とするメモリ量、および必要とするディスクキャッシュ量を基に決める必要があります。色々なキャッシュサイズを試してみて、最適なキャッシュサイズを決めてください。
バルクロードのパフォーマンスを最適にするには、eDirectoryキャッシュの割り当てで、ブロックキャッシュにより高い割り当て率を設定します。ブロックキャッシュに80%の値を設定することをお勧めします。この設定は、処理が完了した後でリセットできます。
iMonitorを使用すれば、最も迅速にblockcachepercentageパラメータを変更できます。この作業を行う方法については、Novell iMonitorを使用するを参照してください。
LBURPトランザクションサイズによって、1つのトランザクションにおいてICEからLDAPサーバに送信されるレコード数が設定されます。十分なメモリがあり、この値を大きくしてもI/O競合が発生しない場合、この値を大きくすることでバルクロードのパフォーマンスを向上できます。
デフォルトのLBURPトランザクションサイズは25です。この値はLDIFファイルが少ない(操作数が100,000より少ない)場合には適切ですが、レコード数が多い場合には不適切です。LBURPトランザクションサイズは、1〜1000の範囲で設定できます。
トランザクションサイズを変更するには、/etc/nds.confファイルでn4u.ldap.lburp.transizeパラメータの値を変更します。
理想的なシナリオでは、トランザクションサイズが大きいほど、パフォーマンスはより高くなります。ただし、次の理由のため、トランザクションサイズには必要以上に大きな値を設定しないようにします。
詳細については、LDIFファイルのデバッグを参照してください。
詳細については、前方参照を有効化するを参照してください。
次のセクションでは、Solarisのカーネル、ネットワーク、およびファイルシステムのチューニング方法について説明します。
重要: 最初に、推奨されているパッチをSolaris OSに適用済みであることを確認します。詳細については、『Novell eDirectory 8.7.3インストールガイド』の「Novell eDirectoryのSolarisへのインストールまたはアップグレード」を参照してください。
Solaris上のeDirectoryパフォーマンスを最適化するには、/etc/systemファイルで次のカーネル変数を設定します。
LDAPの検索パフォーマンスは、Solarisのnddコマンドを使用して改善できます。次に示すコマンド構文を使用すれば、ネットワークの操作や動作に影響する、チューニング可能なパラメータを分析し、変更できます。
ndd -set /dev/tcp variable_name variable_value
変数の推奨値を次の表に示します。
Solarisファイルシステムが適切にチューニングされると、Solaris上のNovell eDirectoryのパフォーマンスが改善されます。特に、ディレクトリへデータをバルクロードする場合のパフォーマンスが非常に向上します。eDirectoryのファイルシステムチューニングは、データベースのチューニングと類似しています。Solarisファイルシステムの詳細については、Sunworld*のWebサイトを参照してください。