Sun Java System Directory Server Enterprise Edition 6.3 配備計画ガイド

ワークスレッドとバックエンド接続の設定

Directory Proxy Server では、サーバーが要求を処理するためのスレッドを何個維持するかを設定できます。これを設定するにはサーバープロパティー number-of-worker-threads を使用します。これについては number-of-worker-threads(5dpconf) のマニュアルページを参照してください。経験則として、50 スレッドに、使用するデータソースごとに 20 スレッドを加算した値を設定してみてください。この数値が十分かどうかを判断するには、cn=Work Queue,cn=System Resource,cn=instance-path ,cn=Application System,cn=DPS6.0,cn=Installed Product,cn=monitor で Directory Proxy Server の作業キューの状態を監視します。作業キューの operationalStatusSTRESSED になっていた場合、それは、スレッドの不足している接続ハンドラが新しいクライアント要求を処理できないことを意味している可能性があります。Directory Proxy Server が追加のシステムリソースを利用できる場合には、number-of-worker-threads を増やすことで状況が改善される可能性があります。

また、ワークスレッドの数はバックエンド接続の数と比較しても適切な値であるべきです。バックエンド接続の数に比べて「ワークスレッドの数が多すぎる」場合、受信接続を受け入れても、それをバックエンド接続に送信することができません。そのような状況は一般に、クライアントアプリケーションにとって問題となります。

この状況が発生しているかどうかを判断するには、次のタイプのエラーメッセージがログファイルに含まれていないかチェックします。"Unable to get backend connections"。あるいは、負荷分散の cn=monitor エントリを確認します。そのエントリの totalBindConnectionsRefused 属性が null でなかった場合、バックエンド接続の不足が原因でプロキシが特定の操作を処理できなかったことになります。この問題を解決するには、バックエンド接続の最大数を増やします。各データソースのバックエンド接続の数を設定するには、そのデータソースの num-bind-limitnum-read-limit、および num-write-limit プロパティーを使用します。バックエンド接続の上限にすでに達した場合には、ワークスレッドの数を減らします。

バックエンド接続の数に比べて「ワークスレッドの数が不足している」場合には、サーバーのキュー内に多数の作業がたまり、新しい接続を処理できなくなる可能性があります。このため、クライアント接続が TCP/IP レベルで拒否されてしまい、何の LDAP エラーも返されない可能性があります。この状況が発生しているかどうかを判断するには、作業キューの cn=monitor エントリの統計を確認します。特に、readConnectionsRefusedwriteConnectionsRefused は低いままであるべきです。また、maxNormalPriorityPeak 属性の値も低いままであるべきです。