Redis Server监控

Redis Server 监控

  • redis存活监控:redis本地监控使用ping,如果指定时间内返回PONG表示存活,否则redis不能响应请求,可能阻塞或死亡。
[root@localhost redis]# redis-cli -p 7001 -a 123456 ping
PONG
  • 连接个数(connected_clients):客户端连接个数,如果连接数过高,影响redis吞吐量。
[root@localhost redis]# redis-cli -p 7001 -a 123456 info |grep connected_clients
connected_clients:3
  • 连接数使用率:连接数使用百分比,通过(connected_clients/maxclients)计算;如果达到1,redis开始拒绝新连接创建,告警
  • 拒绝的连接个数(rejected_connections):redis连接个数达到maxclients限制,拒绝新连接的个数。告警
[root@localhost redis]# redis-cli -p 7001 -a 123456 info |grep rejected_connections
rejected_connections:0
  • redis分配的内存大小(used_memory):reids真实使用内存,不包含内存碎片   
[root@localhost redis]# redis-cli -p 7001 -a 123456 info |grep -w used_memory
used_memory:2492368
  •  redis进程使用内存大小(used_memory_rss):进程实际使用的物理内存大小,包含内存碎片;如果rss过大导致内部碎片大,内存资源浪费,fork的耗时和cow内存都会增大。
[root@localhost redis]# redis-cli -p 7001 -a 123456 info |grep -w used_memory_rss
used_memory_rss:9986048
  •  redis内存碎片率(mem_fragmentation_ratio):表示(used_memory_rss/used_memory),碎片率过大,导致内存资源浪费,不设置告警。小于1,表示redis已使用swap分区,则告警
[root@localhost redis]# redis-cli -p 7001 -a 123456 info |grep -w mem_fragmentation_ratio
mem_fragmentation_ratio:4.01

 

  • 键个数(keys):redis实例包含的键个数。单实例键个数过大,可能导致过期键回收不及时。
[root@localhost redis]# redis-cli -p 7001 -a 123456 info |grep -w keys
db0:keys=2,expires=0,avg_ttl=0
  •  redis处理的命令数(total_commands_processed):监控采集周期内平均qps
[root@localhost redis]# redis-cli -p 7001 -a 123456 info |grep -w total_commands_processed
total_commands_processed:709602
  • redis当前的qps(instantaneous_ops_per_sec):redis内部较实时的每秒执行的命令数
[root@localhost redis]# redis-cli -p 7001 -a 123456 info |grep -w instantaneous_ops_per_sec
instantaneous_ops_per_sec:1
  • 请求键被命中次数:keyspace_hits,请求键未被命中次数:keyspace_misses。请求键的命中率使用keyspace_hits/(keysapce_hits+keysapce_misses)计算所得,命中率低于50%告警
[root@localhost redis]# redis-cli -p 7001 -a 123456 info |grep -w keyspace_hits;
keyspace_hits:3162
[root@localhost redis]# redis-cli -p 7001 -a 123456 info |grep -w keyspace_misses;
keyspace_misses:1577
  •  最近一次fork阻塞的微妙数(latest_fork_usec):最近一次fork操作阻塞redis进程的耗时
[root@localhost redis]# redis-cli -p 7001 -a 123456 info |grep -w latest_fork_usec
latest_fork_usec:809

redis-cli info命令中各数值的含义

redis-cli  
Server  
redis_version:3.2.12              redis版本            
redis_git_sha1:00000000       
 redis_git_dirty:0  
redis_build_id: ee1865197f3392ce  
 redis_module:cluster  运行模式(standalone,cluster)    
 os:Linux 3.10.0-514.el7.x86_64 x86_64  运行系统内核版本
 arch_bits:64  字长 
 multiplexing_api:epoll  redis使用的事件处理机制
 gcc_version:4.8.5  编译redis时所使用的GCC版本
 process_id:4589  redis进程PID
 run_id:8800328e4eb3cbbc0ea316e6a68c4f7fd2142b9f  redis服务器的编号(用于集群)
 tcp_port:7001  监听的端口
 uptime_in_seconds:690926  已运行秒数
 uptime_in_days:6  已运行天数
 hz:10  用于执行后台任务的函数被调用的频率
 lru_clock:9876371  用于LRU管理的计时器,单位为分钟
 executable:/home/redis/redis7001/./redis-server  bin文件的位置
 config_file:/home/redis/redis7001/redis.conf  配置文件位置
 Clients  
 connected_clients:3  连接的客户端个数
 client_longest_output_list:0  当前客户端连接中最长的输出列表
 client_biggest_input_buf:0  当前客户端连接中最大的输入缓存
 blocked_clients:0  阻塞的客户端数
 Memory  
 used_memory:2492368  消耗的内存
 used_memory_human:2.38M  
 used_memory_rss:9986048  操作系统分配给redis的内存
 used_memory_rss_human:9.52M  
 used_memory_peak:2754864  内存消耗的峰值
 used_memory_peak_human:2.63M  
 total_system_memory:6088867840  系统总内存
 total_system_memory_human:5.67G  
 used_memory_lua:41984  Lua脚本消耗的内存
 used_memory_lua_human:41.00K  
 maxmemory:0  内存使用限制
 maxmemory_human:0B  
 maxmemory_policy:noeviction  超出内存限制时的行为 
 mem_fragmentation_ratio:4.01  内存碎片率(=used_memory_rss/used_memory)
 mem_allocator:jemalloc-4.0.3  内存分配器
 Persistence  
 loading:0  是否正在载入持久化文件
 rdb_changes_since_last_save:0  上次持久化以来修改的健值数
 rdb_bgsave_in_progress:0  是否正在后台保存rdb文件
 rdb_last_save_time:1569466564  上次RDB持久化的时间戳
 rdb_last_bgsave_status:ok  上次RDB持久化的结果
 rdb_last_bgsave_time_sec:0  上次创建rdb文件消耗的秒数
 rdb_current_bgsave_time_sec:-1  如果正在创建rdb文件,记录已经消耗了多少时间
 aof_enabled:1  是否启用AOF持久化
 aof_rewrite_in_progress:0  是否正在重写AOF文件
 aof_rewrite_scheduled:0  是否将要重写AOF文件
 aof_last_rewrite_time_sec:-1  上次AOF重写消耗的时间
 aof_current_rewrite_time_sec:-1  当前AOF重写消耗的时间
 aof_last_bgrewrite_status:ok  上次重写AOF文件的结果
 aof_last_write_status:ok  上次写入AOF文件的结果
 aof_current_size:23922  当前AOF文件的大小
 aof_base_size:0  上一个AOF文件的大小
 aof_pending_rewrite:0  是否有AOF重写操作在等待RDB文件的创建
 aof_buffer_length:0  AOF写入缓冲区大小
 aof_rewrite_buffer_length:0  AOF重写缓冲区大小
 aof_pending_bio_fsync:0  正则I/O队列中等待的fsync()的数量
 aof_delayed_fsync:0  被延迟执行的fsync()的数量
Stats  
 total_connections_received:165 服务器已接收的连接请求数
 total_commands_processed:698103 服务器已经执行的命令数量
 instantaneous_ops_per_sec:1 当前每秒执行的命令数量
 total_net_input_bytes:30648062 接收的数据包总大小
 total_net_output_bytes:4836353 发送的数据包总大小
instantaneous_input_kbps:0.05 当前下行速率
instantaneous_output_kbps:0.00 当前上行速率
rejected_connections:0 被拒绝的连接请求数
sync_full:1 主从同步状态
sync_partial_ok:0  
sync_partial_err:0  
expired_keys:0 过期的键数
evicted_keys:0 因内存达到上限被踢出的键的个数
keyspace_hits:3162 命中key的次数
keyspace_misses:1577 未命中的次数
pubsub_channels:0 当前被订阅的频道和模式数
pubsub_patterns:0  
latest_fork_usec:809 最后一次fork()消耗的毫秒数
migrate_cached_sockets:0 为节点迁移缓存的tcp连接数
 Replication  
role:master 主节点还是从节点
connected_slaves:1 已连接的从节点数
slave0:ip=192.169.1.71,port=7004,state=online,offset=989069,lag=1 从节点的信息,ip,端口,数据新度等
master_repl_offset:989069 主节点数据新度
repl_backlog_active:1 是否为主从同步启用积压空间
repl_backlog_size:1048576 积压空间的大小
repl_backlog_first_byte_offset:2 积压空间开头的数据新度
repl_backlog_histlen:989068 积压空间当前数据量
CPU  
 used_cpu_sys:513.30  核心态CPU时间
 used_cpu_user:257.42  用户态CPU时间
used_cpu_sys_children:0.00 子进程用户态CPU时间
used_cpu_user_children:0.00 子进程核心态CPU时间
 Cluster  
cluster_enabled:1 是否启用集群
 Keyspace  
db0:keys=2,expires=0,avg_ttl=0 各数据库的键数,过期键数,数据库中键的平均过期时间戳估测值

参考地址

redis监控指标 https://www.jianshu.com/p/68485d5c7fb9

redis info命令中各数值的含义 https://www.cnblogs.com/corolcorona/p/7384379.html

原文地址:https://www.cnblogs.com/kiko2014551511/p/11649681.html