mybook

第10章 — 運用と監視: キャッシュを見守る

「キャッシュは設定したら終わりじゃない」

「キャッシュは生き物だ。負荷パターン、データ量、アクセスパターンは常に変化する。監視なしでは、いつの間にかキャッシュが効かなくなっていることもある」

主要メトリクス

1. ヒット率(Hit Ratio)

最も重要な指標。キャッシュがどれだけ有効に機能しているか。

ヒット率 = キャッシュヒット数 / (ヒット数 + ミス数) × 100
ヒット率評価アクション
95%+優秀現状維持
85-95%良好TTL 調整を検討
70-85%要改善キャッシュ対象の見直し
70%未満問題ありキャッシュ戦略の再設計
Loading chart...

上のグラフで金曜〜土曜にヒット率が低下し、メモリ使用率が上昇している。セール時のデータ急増でエビクションが頻発している兆候だ。

2. レイテンシ

Redis INFO で確認:
- instantaneous_ops_per_sec: 秒あたりの操作数
- used_memory: メモリ使用量
- keyspace_hits / keyspace_misses: ヒット/ミス数

3. エビクション数

キャッシュからデータが追い出された回数。急増はメモリ不足のサイン。

4. 接続数

Redis への同時接続数。上限に近づくと新規接続が拒否される。

アラート設計

Loading diagram...
メトリクスWARNINGCRITICAL
ヒット率< 85%< 70%
メモリ使用率> 80%> 95%
Redis レイテンシ> 5ms> 20ms
エビクション/分> 100> 1000
接続数> 80% of max> 95% of max

障害対応パターン

パターン1: キャッシュサーバーダウン

Loading diagram...

パターン2: ヒット率の急低下

原因を特定するフロー:

Loading diagram...

パターン3: メモリ肥大化

# Redis のメモリ分析
# 大きなキーを見つける
redis-cli --bigkeys
 
# メモリサンプリング
redis-cli memory usage "product:123"

マナミの監視ダッシュボード

Loading chart...

マナミは Grafana ダッシュボードに以下のパネルを設置した:

  1. リアルタイムヒット率 — 10秒間隔
  2. メモリ使用量推移 — 1時間/1日/1週間
  3. レイテンシ分布 — p50/p95/p99
  4. エビクション数 — 分あたり
  5. トップキー — 最も頻繁にアクセスされるキー

次の章では、実際のケーススタディを通して、キャッシュ戦略の統合パターンを学ぶ。