Sun Java System Web Server 7.0 パフォーマンスのチューニング、サイジング、およびスケーリング

ACL ユーザーキャッシュのチューニング

ACL ユーザーキャッシュはデフォルトで有効になっています。ACL ユーザーキャッシュは、そのデフォルトサイズ (200 件のエントリ) のために、障害の 1 つになるか、あるいは単純に高トラフィックのサイト上でその目的を果たせない可能性があります。ビジー状態のサイトでは、200 件を超えるユーザーが、ACL で保護されたリソースをキャッシュエントリの寿命内でヒットする可能性があります。そうした状況が発生すると、Web Server はユーザーを検証するために LDAP サーバーに対するクエリーをより頻繁に行う必要が生じますが、そのことがパフォーマンスに悪影響を及ぼします。

この障害を解消するには、構成の「パフォーマンス」タブ ⇒「キャッシュ」サブタブで、ACL キャッシュの最大ユーザー数を増やします。また、コマンド wadm set-acl-cache-prop を使って max-users プロパティーを設定することによっても、ユーザー数を設定することができます。キャッシュサイズを増やすとリソースの使用量も増えることに注意してください。キャッシュを大きくするほど、それを保持するために必要となる RAM も多くなります。

また、1 つのキャッシュエントリ内に格納されるグループの数 (デフォルトでは 4) が障害になる可能性もあります (ただし、その可能性は格段に低い)。5 つのグループに所属するユーザーが、ACL キャッシュの寿命内でそれらの異なるグループをチェックするための 5 つの ACL をヒットした場合、追加のキャッシュエントリが 1 つ作成され、そこに追加のグループエントリが格納されます。キャッシュエントリが 2 つ存在している場合、元のグループの情報を含むエントリは無視されます。

このパフォーマンス問題が発生することはきわめてまれですが、構成の「パフォーマンス」タブ ⇒「キャッシュ」サブタブの「最大グループ数」設定を使用すれば、単一の ACL キャッシュエントリ内にキャッシュされるグループの数のチューニングを行えます。あるいは、wadm set-acl-cache-prop コマンドの max-groups-per-user プロパティーを使用することもできます。

ACL キャッシュの最大継続時間の設定により、キャッシュエントリが期限切れになるまでの秒数が決まります。キャッシュのエントリが参照されるたびにその経過時間が計算され、最大継続時間の設定と照合されます。エントリの継続時間が最大継続時間よりも大きいかそれと等しい場合、そのエントリは使用されません。デフォルト値は 120 秒です。LDAP が頻繁に変更される可能性が低い場合には、大きい数値を最大継続時間として使用してください。これに対し、LDAP のエントリが頻繁に変更される場合には、小さい値を使用してください。たとえば、この値が 120 秒である場合、Web Server と LDAP サーバーの同期が 2 分間にわたって取られない可能性があります。環境によって、それが問題になる可能性も、ならない可能性もあります。