Redis 在 Debian 上的性能监控实践
一 关键监控指标与获取方式
- 建议优先关注以下核心指标:CPU 使用率、内存使用与碎片、命中率、延迟、连接数、慢查询。这些指标能覆盖大多数性能与健康问题定位场景。
- 使用 INFO 获取运行时状态:
- 内存:
redis-cli info memory(关注 used_memory、used_memory_rss、mem_fragmentation_ratio)
- 统计:
redis-cli info stats(关注 instantaneous_ops_per_sec、total_commands_processed、rejected_connections)
- 命令效率:
redis-cli info commandstats(定位耗时命令)
- 复制:
redis-cli info replication(主从延迟与同步状态)
- 使用 LATENCY 评估时延:
redis-cli latency doctor、redis-cli latency latest(发现延迟抖动与异常)
- 使用 SLOWLOG 捕获慢查询:
- 配置阈值:
slowlog-log-slower-than 10000(单位微秒,示例为 10 ms)
- 查看与分析:
redis-cli slowlog get、redis-cli slowlog reset
- 使用 CLIENT LIST 观察连接与空闲情况:
redis-cli client list(排查连接风暴、阻塞客户端)
- 使用 MONITOR 实时观察命令流(仅用于短时排障,生产慎用)
- 使用 redis-benchmark 做基线压测:
redis-benchmark -c 50 -n 10000 -q(并发 50、请求 10000、静默模式)
以上命令均为 Redis 自带能力,适合在 Debian 上直接执行与集成到脚本中。
二 日志与系统层面监控
- 日志定位:确认 Redis 日志路径,便于排查持久化、复制与启动异常。Debian 常见路径为 /var/log/redis/redis-server.log,可用命令
redis-cli config get logfile 核实。
- 系统资源:配合 top/htop、vmstat、iostat、netstat 观察 CPU、内存、磁盘 I/O 与网络,排除系统瓶颈对 Redis 的影响。
- 集群状态:对 Redis Cluster 使用
redis-cli cluster nodes 查看节点与状态,配合 redis-cli cluster info 获取集群概要。
这些手段与 Redis 内部指标结合,能更快定位“是 Redis 本身问题还是运行环境问题”。
三 Prometheus Grafana 可视化监控
- 组件与端口:部署 redis_exporter(默认端口 9121)采集 Redis 指标;Prometheus 抓取 Exporter;Grafana 做可视化与告警。
- 快速落地步骤:
- 启动 Exporter:
./redis_exporter --redis.addr=redis://localhost:6379
- Prometheus 配置抓取:
- job_name: ‘redis’
static_configs:
- targets: [‘localhost:9121’]
- Grafana 添加 Prometheus 数据源,导入 Redis 仪表盘模板,即可查看 命中率、延迟、连接数、内存、慢查询 等图表。
该方案适合长期观测、容量规划与阈值告警,图形化展示更利于团队协作与值班。
四 可视化与一键诊断工具
- RedisInsight:官方可视化工具,支持实时监控 内存、连接数、命令执行,并提供 慢查询分析 与键值浏览,适合快速上手与日常巡检。
- 其他选择:Datadog、New Relic 等 APM/监控平台,可与 Redis 集成,提供告警、拓扑与调用链能力(适合云上或大规模环境)。
这些工具能显著降低监控接入成本,并提供更友好的可视化与诊断体验。
五 告警阈值与排障流程建议
- 建议阈值与动作(需结合业务基线调优):
- used_memory > 80% 最大内存:检查 maxmemory 与淘汰策略(如 allkeys-lru),评估扩容或数据清理
- instantaneous_ops_per_sec 突降或 rejected_connections > 0:排查慢查询、阻塞命令、连接泄漏或客户端风暴
- 命中率(keyspace_hits/keyspace_misses)下降:评估缓存击穿/穿透,优化键设计与过期策略
- 慢查询增多:分析
SLOWLOG GET,优化大 key、禁用或替换 KEYS,使用 SCAN 替代
- latency 抖动或异常:使用
LATENCY DOCTOR 与 LATENCY LATEST 定位,检查持久化(RDB/AOF)、复制与系统资源
- 快速排障流程:
redis-cli ping 与服务端口连通性 → 2) INFO/LATENCY/SLOWLOG 定位内部瓶颈 → 3) CLIENT LIST 与系统工具排查连接与资源 → 4) 必要时用 MONITOR 短时抓包与 redis-benchmark 基线对比 → 5) 集群场景用 cluster nodes 检查分片与复制健康度。
上述阈值与流程覆盖日常大多数性能问题,可作为值班手册的基础条目。