第8章 Redis监控
Redis 提供了 INFO 命令来获取服务器的统计信息和运行状态。通过监控这些指标,可以及时发现问题并进行优化。
参考文档:http://www.redis.cn/commands/info.html
监控指标详解
Server 信息
包含 Redis 服务器的基本信息:版本号、运行模式(standalone/sentinel/cluster)、操作系统、进程 PID、运行时长、配置文件路径等。
关键指标:
uptime_in_seconds
:服务器运行时长(秒)process_id
:进程 PIDtcp_port
:监听端口config_file
:配置文件路径
Clients 连接
监控客户端连接状态,帮助了解系统负载:
connected_clients
:当前连接数(不含从节点)blocked_clients
:阻塞命令等待的客户端数client_longest_output_list
:最长输出列表client_biggest_input_buf
:最大输入缓存
🚨 生产环境监控建议
定期检查 connected_clients,避免连接数过多导致性能下降。如果 blocked_clients 持续增长,可能存在慢查询或死锁问题。
Memory 内存
内存是 Redis 最重要的监控指标:
核心指标:
used_memory
:Redis 分配的内存总量used_memory_rss
:操作系统分配给 Redis 的内存(常驻内存)used_memory_peak
:内存使用峰值mem_fragmentation_ratio
:内存碎片率(rss/used)
内存状态判断:
- 碎片率 > 1.5:存在严重内存碎片,考虑重启实例
- used > rss:部分内存被换出到 swap,会导致严重性能问题
- used_memory 接近 maxmemory:需要扩容或优化数据结构
⚠️ 内存问题诊断
内存碎片过高:
- 检查
mem_fragmentation_ratio
,正常值应在 1.0-1.5 之间 - 碎片率过高时执行
CONFIG SET activedefrag yes
开启主动碎片整理 - 必要时在业务低峰期重启实例
内存使用过高:
- 检查是否有大 key:
redis-cli --bigkeys
- 分析内存使用:
MEMORY STATS
- 优化数据结构或增加 maxmemory 限制
Persistence 持久化
监控 RDB 和 AOF 的执行状态:
RDB 相关:
rdb_last_bgsave_status
:最后一次 RDB 保存状态rdb_last_bgsave_time_sec
:最后一次保存耗时rdb_changes_since_last_save
:上次保存后的修改次数
AOF 相关:
aof_enabled
:AOF 是否启用aof_last_rewrite_time_sec
:最后一次重写耗时aof_current_size
:当前 AOF 文件大小aof_buffer_length
:AOF 缓冲区大小
Stats 统计
运行统计信息:
total_commands_processed
:处理的命令总数instantaneous_ops_per_sec
:每秒处理命令数(QPS)keyspace_hits/misses
:缓存命中率相关evicted_keys
:因内存限制驱逐的 key 数量
缓存命中率计算:
命中率 = keyspace_hits / (keyspace_hits + keyspace_misses) * 100%
Replication 主从复制
主从复制状态监控:
role
:实例角色(master/slave)connected_slaves
:连接的从节点数master_link_status
:主从连接状态master_last_io_seconds_ago
:主从最后通信时间
🚨 主从复制监控要点
- 监控
master_link_status
,确保主从连接正常 - 关注
master_last_io_seconds_ago
,超过 10 秒可能存在网络问题 - 检查
master_sync_in_progress
,长时间同步可能影响性能
CPU 使用
CPU 使用情况:
used_cpu_sys
:系统 CPU 消耗used_cpu_user
:用户 CPU 消耗used_cpu_sys_children
:后台进程系统 CPUused_cpu_user_children
:后台进程用户 CPU
监控最佳实践
💡 监控建议
-
设置告警阈值:
- 内存使用率 > 80%
- 连接数 > 最大连接数的 80%
- 主从延迟 > 10 秒
- 缓存命中率 < 90%
-
定期巡检:
- 每小时检查内存碎片率
- 每天检查慢查询日志
- 每周分析大 key
-
使用监控工具:
- Redis 自带:INFO、MONITOR、SLOWLOG
- 第三方:Redis Exporter + Prometheus + Grafana
- 云服务:阿里云 Redis 监控、AWS ElastiCache 监控
更新: 2025-01-17 09:48:12