運用環境において Redis は単なるキャッシュにとどまらず、セッションストア・キュー・Pub/Sub などの基盤サービスとして活用される。
そのため、性能劣化や障害を未然に防ぐには、メモリ・ネットワーク・コネクション・永続化といった領域ごとの主要指標を定期的に確認する必要がある。
1. メモリ指標



used_memory
Redis プロセスが実際に使用しているメモリ量。
物理メモリに対する使用率が急激に増加すると OOM のリスクが高い。maxmemory 設定と eviction ポリシーの確認が必須。
mem_fragmentation_ratio
メモリ断片化の比率。
1.0 に近いほど正常。
1.5 以上なら断片化が深刻 → 再起動または RDB/AOF リライトを検討。
evicted_keys
maxmemory を超えたため強制削除されたキーの数。
増加するとキャッシュミス率が上昇する可能性。
eviction ポリシー(noeviction, allkeys-lru など)の確認が必要。
2. パフォーマンス指標


instantaneous_ops_per_sec
1 秒あたりに処理されるコマンド数(QPS)。
トラフィックスパイクの確認に使用。
ベースラインと比較して急増・急減するパターンに注意。
slowlog
1 秒間に Redis に記録されたスロークエリ項目数。
0 に近い値が正常。
一定以上の値が継続して大きい場合、アプリケーション側でブロッキングコマンドまたは大容量データ処理パターンが存在することを意味する。
3. 接続指標

blocked_clients
ブロッキングコマンド(BRPOP, BLPOP など)待ちのクライアント数。
急増する場合、アプリケーションのキュー処理にボトルネックがある可能性。
connected_clients
現在接続されているクライアント数。
アプリケーションの接続プール設定と比較して確認。maxclients に近づくと新規接続が失敗するリスク。
rejected_connections
同時接続数超過により拒否された接続数。
急増時はクライアントプールの調整が必要。
4. ネットワーク指標

total_net_input_bytes / total_net_output_bytes
累積の受信/送信データ量。
ネットワーク帯域使用量の傾向を把握できる。
特定時点で急増する場合、大容量値の set/get が発生していないか確認。
5. 永続化(Persistence)指標

データがメモリを越えてディスクに安全に保持されるための特性。
rdb_last_bgsave_status
RDB スナップショットの成功/失敗状態。
失敗時はディスク容量不足・権限エラーなどを確認。
aof_last_bgrewrite_status
AOF リライトの成功/失敗状態。
AOF ファイルが急激に肥大化している場合はディスク容量に注意。
rdb_changes_since_last_save
最後の保存以降に変更されたキー数。
save 間隔に比べて過剰に増加している場合、障害時のデータ損失リスク。
6. キャッシュ効率指標

keyspace_hits / keyspace_misses
キャッシュヒット率 =
hits / (hits + misses) * 100
90%以上を維持するのが望ましい。
低い場合、キャッシュ方針やデータ構造の再検討が必要。
Zabbix agent2 の Redis テンプレートにはキャッシュヒット率のアイテムが存在しない。
既存のアイテム値を数式で処理し、新たにアイテムを作成する必要がある。
数式:
last(//redis.stats.keyspace_hits) /
( last(//redis.stats.keyspace_hits) + last(//redis.stats.keyspace_misses) ) * 100

✅ 運用ポイントまとめ
- まずメモリ使用率と断片化比率を確認する。
- 接続数と拒否回数でアプリケーション接続問題を追跡する。
- ops/sec・slowlog を併せて見て性能低下の兆候を把握する。
- ヒット率低下や evicted_keys の増加はキャッシュ方針見直しのサイン。
🛠 마지막 수정일: 2025.11.24
💡 お困りですか?
Zabbix、Kubernetes、各種オープンソースインフラの構築・運用・最適化・障害解析が必要であれば、いつでもご連絡ください。
📧 メール: jikimy75@gmail.com
💼 サービス: 導入支援 | 性能チューニング | 障害解析コンサルティング
답글 남기기
댓글을 달기 위해서는 로그인해야합니다.