グローバルタグ
cache=<name>
-
キャッシュ名。
これは「メトリクスを使用したトラブルシューティング」ガイドの一部です。
メトリクスはKeycloakで有効にする必要があります。詳細については、「メトリクスによる洞察の獲得」ガイドを参照してください。
メトリクスを収集する監視システム。
グローバルタグ
cache=<name>
キャッシュ名。
これらの2つのメトリクスを使用して、キャッシュ内のエントリ数を監視します。キャッシュがクラスタ化されている場合、各エントリにはオーナーノードと、異なるノードのバックアップコピーがゼロ個以上存在します。
クラスタの合計エントリ数を取得するには、ユニークエントリサイズのメトリクスを合計します。 |
メトリクス | 説明 |
---|---|
|
ノードによって保存されているエントリの概算数(バックアップコピーを含む)。 |
|
ノードによって保存されているエントリの概算数(バックアップコピーを除く)。 |
次のメトリクスは、読み取り、書き込み、およびそれらの期間など、キャッシュアクセスを監視します。
ストア操作は、キャッシュに保存されている値を書き込みまたは更新する書き込み操作です。
メトリクス | 説明 |
---|---|
|
ストアリクエストの合計数。 |
|
すべてのストアリクエストの合計時間。 |
ヒストグラムが有効になっている場合、パーセンタイルバケットが利用可能です。これらはヒートマップを作成するのに役立ちますが、パーセンタイルバケットの収集と公開は、デプロイメントのパフォーマンスに悪影響を与える可能性があります。 |
読み取り操作は、キャッシュから値を読み取ります。値が見つかった場合はヒット、見つからなかった場合はミスという2つのグループに分けられます。
メトリクス | 説明 |
---|---|
|
読み取りヒットリクエストの合計数。 |
|
すべての読み取りヒットリクエストの合計時間。 |
|
読み取りミスリクエストの合計数。 |
|
すべての読み取りミスリクエストの合計時間。 |
ヒストグラムが有効になっている場合、パーセンタイルバケットが利用可能です。これらはヒートマップを作成するのに役立ちますが、パーセンタイルバケットの収集と公開は、デプロイメントのパフォーマンスに悪影響を与える可能性があります。 |
削除操作は、キャッシュから値を削除します。値が存在する場合はヒット、値が存在しない場合はミスという2つのグループに分けられます。
メトリクス | 説明 |
---|---|
|
削除ヒットリクエストの合計数。 |
|
すべての削除ヒットリクエストの合計時間。 |
|
削除ミスリクエストの合計数。 |
|
すべての削除ミスリクエストの合計時間。 |
ヒストグラムが有効になっている場合、パーセンタイルバケットが利用可能です。これらはヒートマップを作成するのに役立ちますが、パーセンタイルバケットの収集と公開は、デプロイメントのパフォーマンスに悪影響を与える可能性があります。 |
|
読み取りおよび削除操作のヒット率
Prometheusなどのシステムでキャッシュのヒット率を計算するために式を使用できます。例として、読み取り操作のヒット率は次のように表現できます。
vendor_statistics_hit_times_seconds_count / (vendor_statistics_hit_times_seconds_count + vendor_statistics_miss_times_seconds_count)
読み取り/書き込み比率
上記のメトリクスを使用して、キャッシュの読み取り/書き込み比率を計算するために式を使用できます。
(vendor_statistics_hit_times_seconds_count + vendor_statistics_miss_times_seconds_count) / (vendor_statistics_hit_times_seconds_count + vendor_statistics_miss_times_seconds_count + vendor_statistics_remove_hit_times_seconds_count + vendor_statistics_remove_miss_times_seconds_count + vendor_statistics_store_times_seconds_count)
エビクションはキャッシュサイズを制限するプロセスであり、満杯になると、新しいエントリをキャッシュするための空きを作るためにエントリが削除されます。Keycloakは users
、realms
、および authorization
のデータベースエンティティをキャッシュするため、データベースアクセスは常にエビクションイベントを伴います。
メトリクス | 説明 |
---|---|
|
エビクションイベントの合計数。 |
エビクション率
エビクションの急激な増加と非常に高いデータベースCPU使用率は、users
または realms
キャッシュがKeycloakの円滑な動作には小さすぎることを意味します。データはデータベースから頻繁に再ロードする必要があり、応答が遅くなります。十分なメモリが利用可能な場合は、CLIオプション cache-embedded-users-max-count
または cache-embedded-realms-max-count
を使用して、キャッシュの最大サイズを増やすことを検討してください。
トランザクショナルキャッシュは、トランザクションを完了するために、One-Phase-CommitプロトコルとTwo-Phase-Commitプロトコルの両方を使用します。これらのメトリクスは、操作時間を追跡します。
PESSIMISTIC ロックモードはOne-Phase-Commitを使用し、コミットリクエストを作成しません。 |
健全なクラスタでは、ロールバックの数はゼロのままになるはずです。デッドロックはまれであるはずですが、ロールバックの数を増やします。 |
メトリクス | 説明 |
---|---|
|
プリペアリクエストの合計数。 |
|
すべてのプリペアリクエストの合計時間。 |
|
ロールバックリクエストの合計数。 |
|
すべてのロールバックリクエストの合計時間。 |
|
コミットリクエストの合計数。 |
|
すべてのコミットリクエストの合計時間。 |
ヒストグラムが有効になっている場合、パーセンタイルバケットが利用可能です。これらはヒートマップを作成するのに役立ちますが、パーセンタイルバケットの収集と公開は、デプロイメントのパフォーマンスに悪影響を与える可能性があります。 |
「メトリクスを使用したトラブルシューティング」に戻るか、「外部 Infinispan メトリクス」に進みます。