Redis Monitor

Redis 运维监控

Posted by John-zero on November 19, 2017

单机监控项

监控数据来源

   info 命令 (官网 info)

建议监控属性

类型 属性 描述
Server 服务器信息  
     
Clients 客户端信息  
  connected_clients 已连接客户端的数量
  client_longest_output_list 当前所有输出缓冲区中队列队形个数的最大值
  client_biggest_input_buf 当前所有输入缓冲区中占用的最大容量
  blocked_clients 正在等待阻塞命令的客户端数量
     
Memory 内存信息  
  used_memory 由 Redis 分配器分配的内存总量, 以字节 (byte) 为单位
  used_memory_human  
  used_memory_rss 从操作系统的角度, 返回 Redis 已分配的内存总量 (俗称常驻集大小)
  used_memory_rss_human  
  used_memory_peak  
  used_memory_peak_human  
  used_memory_peak_perc  
  used_memory_overhead  
  used_memory_startup  
  used_memory_dataset  
  used_memory_dataset_perc  
  total_system_memory  
  total_system_memory_human  
  used_memory_lua  
  used_memory_lua_human  
  maxmemory  
  maxmemory_human  
  maxmemory_policy  
  mem_fragmentation_ratio used_memory_rss 和 used_memory 之间的比率
  mem_allocator  
  active_defrag_running  
  lazyfree_pending_objects  
     
Persistence 持久化信息  
  loading 是否在加载持久化文件, 0:否; 1:是
     
Stats 全局统计信息  
  total_commands_processed 采集周期内执行命令总数
  rejected_connections 采集周期内拒绝连接总数
  expired_keys 采集周期内过期 Key 总数
  evicted_keys 采集周期内踢出 Key 总数
  keyspace_hits 采集周期内 Key 命中总数
  keyspace_misses 采集周期内 Key 拒绝总数
  keyspace_hit_ratio 访问命中率
     
Replication 复制信息  
     
CPU CPU 消耗信息  
  used_cpu_sys Redis 服务器耗费的系统 CPU
  used_cpu_user Redis 服务器耗费的用户 CPU
  used_cpu_sys_children 后台进程耗费的系统 CPU
  used_cpu_user_children 后台进程耗费的用户 CPU
     
Commandstats 命令统计信息  
     
Keyspace 数据库键统计信息  
  db0  
  db1  
  db…N keys=N,expires=N,avg_ttl=N (单位: 秒)
  db15  

内存消耗

重点关注 mem_fragmentation_ratio, 
	当其值 > 1 时, 说明 used_memory_rss - used_memory 多出的部分被内存碎片消耗掉了
	当其值 < 1 时, 一般可能是 Redis 内存交换 (Swap) 到硬盘导致, 也需要关注到

参考

  Open-Falcon Redis 监控脚本 redis-monitor

  Open-Falcon Redis 监控脚本 redismon


慢查询 SLOWLOG

SLOWLOG GET [N]

例如:
	SLOWLOG GET
	SLOWLOG GET 100
	
...	

redis-cli –stat 实时统计

redis-cli --stat
keys mem clients blocked requests connections
0 807.92K 1 0 4769 (+0) 4
0 807.92K 1 0 4770 (+1) 4
0 807.92K 1 0 4771 (+1) 4
0 807.92K 1 0 4772 (+1) 4

redis-cli –bigkeys 采样分析大对象

redis-cli --bigkeys

该命令使用 scan 命令对 Redis 的键采样分析, 从中统计分析找到内存占用比较大的键值.

更多监控等待挖掘…

**持久化阻塞**
**连接拒绝**
**命中率**
**CPU**
**内存**
**网络**
**磁盘**
**等等**