キャッシュ パフォーマンスのチューニング
Confluence のパフォーマンスはキャッシュのパフォーマンスに大きな影響を受ける可能性があります。
キャッシュのサイズを変更する前に、個々の変更の効果を測定し、必要かどうかを判断できるように、ベースラインを用意しておくことをお勧めします。
このページでは、統計のサンプルをいくつかご紹介し、これらのキャッシュのサイズを変更することによって Confluence のパフォーマンスを改善する方法について説明します。
キャッシュ統計をチェックしたり、キャッシュ設定を変更したりするだけであれば、「キャッシュ統計」を参照してください。
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 % を超えている)
- 有効率が低い
「有効率」と「使用率」の対応関係を確認します。使用率が低いキャッシュのサイズを下げる必要はありません。キャッシュがいっぱいになるまでメモリの消費は増えません。
上の条件をもとにすると、"添付ファイル"、"データベース クエリ"、"ユーザー" のキャッシュは、サイズを拡大して、有効率を改善する必要があります。
保存された情報が古くなったり、使用されなかったりすると、情報は期限切れとなり、キャッシュから削除されます。キャッシュの有効期間は使用回数や使用頻度をもとにしています。
使用率と有効率の両方が低いキャッシュについては、できることはあまりありません。時間が経つにつれて、キャッシュに含まれるオブジェクトが増え、それらに対して繰り返しリクエストが行われると、キャッシュの有効性が高まります。
重要なキャッシュ
次の提案は一般的なガイドラインです。大規模なデータベースの場合、テーブルのサイズの 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
を使用します。