使用している Amazon ElastiCache Redis クラスターで CacheHitRate メトリクスが低下しているため、トラブルシューティングしたいです。
解決策
CacheHitRate が下がった場合、通常はキャッシュミスが増加しています。詳細については、「キャッシュ効率の監視」を参照してください。CacheHitrate の低下をトラブルシューティングするには、次の手順を実行します。
Redis エンジンがキーを除外したかどうかを確認する
Redis エンジンがメモリを管理するためにキーを除外すると、エビクション中に CacheHitRate が低下することがあります。
Redis エンジンがキーを除外したかどうかを確認するには、次の Amazon CloudWatch メトリクスを確認します。
- Evictions
- BytesUsedForCache
- DatabaseMemoryUsagePercentage
この問題を解決するには、クラスターをスケーリングします。
キー失効の設定を確認する
キーの失効が早すぎると、Reclaimed メトリクスが急増する可能性があります。Reclaimed メトリクスを確認するには、INFO コマンドを実行し、出力で失効イベントの件数を見ます。このメトリクスは、有効期間 (TTL) を過ぎたことが原因で Redis により削除されたキーの総数を示します。詳細については、Redis のウェブサイトで「INFO」を参照してください。
この問題を解決するには、キーの TTL 設定を更新します。詳細については、Redis のウェブサイトで「TTL」を参照してください。
削除したキーのクライアントアップデートを確認する
クライアントアップデートによって削除されたキーをアプリケーションが取得しようとすると、次の変化が起こる場合があります
- CacheMisses の増加
- CacheHitRate の減少
クライアントの更新によってキーが削除されたかどうかを判断するには、FLUSHALL、DEL、UNLINK などのコマンドにより、アプリケーションが更新されたかどうかを確認します。詳細については、Redis のウェブサイトで FLUSHALL、DEL、UNLINK について参照してください。
キーの削除を減らすには、ロールベースのアクセス制御 (RBAC) を使用することをおすすめします。または、rename-commands パラメータを使用することで、キー削除などの重大な問題の原因となりうるコマンドをリネームし、書き留めておきます。rename-commands のパラメータに関する詳細については、「ElastiCache バージョン 5.0.6 for Redis OSS (拡張版)」を参照してください。
ElastiCache によりクラスターが回復されたかどうかを確認する
クラスターでハードウェアの問題が発生すると、ElasticCache はクラスターを回復し、キャッシュからすべてのデータを削除します。キャッシュが空になったため、そのキャッシュからデータを要求するとキャッシュミスが発生します。
ElastiCache でクラスターが回復されたかどうかを確認するには、ElastiCache の [イベント] セクションで CacheHitRate メトリクスを確認します。
データの可用性を向上させ、フォールトトレランスを強化するには、クラスターにリードレプリカを追加し、自動フェイルオーバーオプションを使用してマルチ AZ を有効にします。
キャッシュのベストプラクティスを実施する
CacheHits と CacheMisses メトリクスのが両方 0 の場合、キャッシュに対するリクエストは発生していません。この場合、CloudWatch は CacheHitRate メトリクスのデータを表示しません。
キャッシュヒット率は 0.8 以上にすることをおすすめします。Redis が過剰に多くのキーをキャッシュから削除した場合や、キーの有効期限が切れているか存在しない場合、キャッシュヒット率は低くなります。キャッシュのパフォーマンスを向上させるには、キャッシュのベストプラクティスに従ってください。
関連情報
Valkey および Redis OSS のメトリクス