Title: L1 権限キャッシュ サイズ

ここでは、TeamPage が画面を表示するときに参照する、ユーザーの権限のキャッシュのサイズを設定します。数百名のユーザーのアクセスがごく短時間に集中するような場合を除いて、通常、この値を変更する必要はありません。

L1 キャッシュ

TeamPage は、ユーザーのアクセスに応じて記事やタグへのリンクを画面に表示するとき、リンク先の読み取り権限があるかどうかを必ずチェックし、読み取り権限がない場合はリンクを無効または非表示にします。

別々のユーザーが TeamPage にアクセスするたびに権限のチェックをしなければならいため、一度にたくさんのユーザーがアクセスすると権限のチェック作業量が膨大になり、負荷がかかります。そこで、権限情報をキャッシュし、権限チェック作業量の軽減できるようになっています。

この L1 権限キャッシュ サイズとは、そのためのキャッシュの量です。ゼロを指定すると、TeamPage は毎回アクセス コントロール リスト (ACL) を参照して権限チェックを行わなければならなくなり、画面表示に時間がかかるようになります。

L1 権限キャッシュと同期する L2 権限キャッシュ により、権限チェックは、ACL を参照するよりもずっと速く処理できるようになります。L2 キャッシュは、L1 キャッシュよりもサイズが大きく、例えばユーザー(のブラウザ)がある特定のページの読み込みを完了してから次のページへ移動するときの権限チェックの負荷を大きく軽減するために使われます。

L1 権限キャッシュは L2 権限キャッシュより優先的に使われ、内部的なループ計算に特化されており、高速にアクセスできます。しかし、L1 権限キャッシュのサイズを大きくすると、キャッシュのルックアップの所要時間も大きくなる(遅くなる)というデメリットもあります。したがって、必要以上に大きな値を設定する必要はありません。

既定値の 20 は、通常のアクセス集中度に対して十分な量としてチューニングされた値です。前述のように、数百のユーザーが一度にアクセスするような大規模運用をする場合のみ、大きな値に変更してください。

デバッグ ログ設定の「permcache」チェックボックスをオンにすると、ログファイル (debug.log) に L1 から L2 権限キャッシュへの転送量が記録されます。権限チャックのたびに L1 キャッシュが L2 キャッシュへスワップされるような場合を除き、L1 キャッシュのサイズを大きくするメリットはなく、前述のように逆に動作パフォーマンスを悪くする(遅くする)ことがあります。

TeamPage の実際の動作パフォーマンスは、ここで述べた L1 や L2 権限キャッシュだけでなく、コンピューターの CPU 処理能力やメモリのアクセス特性に左右されます。したがって、L1 や L2 権限キャッシュの調整によって動作パフォーマンスをどの程度改善できるかどうかは、TeamPage を運用する環境によって異なります。



Attachments:
L1_cache.png
関連記事
親記事に追加されている (1)
Article: DocJp1223 (permalink)
Date: 2011/01/06; 19時47分41秒 JST

Author Name: TeamPage サポート
Author ID: jpbo