キャッシュ パフォーマンスのチューニング
Confluence のパフォーマンスはキャッシュのパフォーマンスに大きな影響を受ける可能性があります。Confluence の大規模な本番インストールの管理者は、その環境に合わせてキャッシュを調整することが欠かせません。
各キャッシュ領域には、設定可能なパラメーターがいくつかありますが、特に注目すべきなのは、キャッシュサイズ、キャッシュの有効期間、エビクション ポリシーです。たいていの場合、みなさんが変更しようと考えるパラメーターはキャッシュサイズです。
キャッシュのサイズを変更するには、
- Go to > General Configuration > Cache Management.
- 詳細ビューの表示 を選択します。
- 変更したいキャッシュの横にある サイズ調整 を選択します。
他のパラメーターを変更するには、キャッシュ設定ファイルを手動で変更します。
On this page:
キャッシュのチューニング例
Confluence のキャッシュをチューニングする具体例として、次の表を見てみましょう。
キャッシュ | 使用率(%) | 有効率(%) | オブジェクト/サイズ | ヒット/ミス/有効期限 |
---|---|---|---|---|
添付ファイル | 87% | 29% | 874 時間 365 日 | 78226/189715/187530 |
コンテンツ添付ファイル | 29% | 9% | 292 時間 365 日 | 4289/41012/20569 |
コメント本文 | 98% | 81% | 987 時間 365 日 | 28717/6671/5522 |
コンテンツ ラベル マッピング | 29% | 20% | 294 時間 365 日 | 4693/18185/9150 |
データベース クエリ | 96% | 54% | 968 時間 365 日 | 105949/86889/83334 |
オブジェクト プロパティ | 27% | 18% | 279 時間 365 日 | 5746/25386/8102 |
ページ コメント | 26% | 11% | 261 時間 365 日 | 2304/17178/8606 |
ユーザー | 98% | 5% | 982 時間 365 日 | 6561/115330/114279 |
上記のキャッシュの最大サイズは 1000 です(つまり、1000 個のオブジェクトまで含められることを意味します)。キャッシュサイズの拡大が必要になる時期は、キャッシュが次の 2 つの条件に該当するかどうかで確認できます。
- 使用率が高い(75 % を超えている)
- 有効率が低い
「有効率」と「使用率」の対応関係を確認します。使用率が低いキャッシュのサイズを下げる必要はありません。キャッシュがいっぱいになるまでメモリの消費は増えません。
上の条件をもとにすると、"添付ファイル"、"データベース クエリ"、"ユーザー" のキャッシュは、サイズを拡大して、有効率を改善する必要があります。
保存された情報が古くなったり、使用されなかったりすると、情報は期限切れとなり、キャッシュから除去されます。キャッシュの有効期間は使用回数や使用頻度をもとにしています。
使用率と有効率の両方が低いキャッシュについては、できることはあまりありません。時間が経つにつれて、キャッシュに含まれるオブジェクトが増え、それらに対して繰り返しリクエストが行われると、キャッシュの有効性が高まります。
設定ファイルの保管場所
キャッシュ設定は <confluence-home>/shared-home/config/cache-settings-overrides.properties
に格納されます。
Confluence Data Center (クラスタ構成) の場合、これは <confluence-shared-home>/config/cache-settings-overrides.properties
(クラスタの共有ホーム ディレクトリ) で見つけることができます。
キャッシュ キーのマッピング
キャッシュ設定ファイルは、キーを使用してキャッシュを設定します。キャッシュ キーを調べるには、キャッシュ管理 画面でキャッシュ名の上にマウスを置きます。
Confluence Data Center でのキャッシング
Confluence Data Center(クラスタ化済み)には、分散キャッシュとクラスタ ノード ローカル キャッシュがあります。クラスタ管理ページには、クラスタ分散キャッシュとクラスタ ノード ローカル キャッシュが表示されます。
キャッシュ設定ファイルは、クラスタ用の共有ホーム ディレクトリに保存されています。
重要なキャッシュ
次の提案は一般的なガイドラインです。大規模なデータベースの場合、テーブルのサイズの 20 ~ 30% が不必要ほど大きくなっている可能性があります。より具体的な評価をするには、キャッシュの有効性と使用率のカテゴリーを確認してください。
- コンテンツ オブジェクト キャッシュ (
com.atlassian.confluence.core.ContentEntityObject
)
は少なくとも、システム内のコンテンツのエンティティ オブジェクト (ページ、コメント、メール、ニュース記事) 数の 20 ~ 30 % に設定する必要があります。コンテンツのエンティティ オブジェクトの数を確認するには、クエリselect count(*) from CONTENT where prevver is null
を使用します。 - コンテンツ ボディ マッピング キャッシュ (
com.atlassian.confluence.core.ContentEntityObject.bodyContents
は少なくとも、システム内のコンテンツのエンティティ オブジェクト (ページ、コメント、メール、ニュース記事 ) 数の 20 % に設定する必要があります。コンテンツのエンティティ オブジェクトの数を確認するには、クエリ)
select count(*) from CONTENT where prevver is null
を使用します。 組み込みの Crowd 内部ユーザー キャッシュ (
com.atlassian.crowd.model.user.InternalUser
)
これは、内部ディレクトリのユーザー数に設定する必要があります。この数値は次の SQL を使用して確認できます。SELECT COUNT(*) FROM cwd_user u JOIN cwd_directory d ON u.directory_id = d.id AND d.directory_name = 'Confluence Internal Directory';
組み込みの Crowd のユーザー キャッシュ (
com.atlassian.confluence.user.crowd.CachedCrowdUserDao.USER_CACHE
)
は、cwd_user テーブルの行数に設定する必要があります。SELECT COUNT(*) FROM cwd_user u;
- ID によるスペース権限キャッシュ (
com.atlassian.confluence.security.SpacePermission
)
は、デプロイメント内のスペース権限の数に設定する必要があります (大まかな目安として、スペース数の 20 倍)。スペース権限の数を確認するには、クエリselect count(*) from SPACEPERMISSIONS
を使用します。
キャッシュのコンテンツ監視
キャッシュの内容を監視するには、
- ブラウザで
confluence-URL>/admin/cachecontents.jsp
に移動します。
項目を持つすべてのキャッシュが表示されます。 - 一覧からキャッシュを選択します。
注意
- 大規模な Confluence サイトのパフォーマンスを向上させるには、静的コンテンツのキャッシュを JVM から Apache に移動することをお勧めします。これは、JVM が静的コンテンツを提供するスレッドを長時間実行させるのを防ぎます。「mod_disk_chache 経由で静的コンテンツをキャッシュするように Apache を設定する」を参照してください。