redis info all实时运行信息关注redis服务重要指标

时光总嘲笑我的痴心妄想 提交于 2020-01-22 02:02:13

(此处redis-cli命令已在linux系统下配置环境变量,可以在任何目录下直接执行,未配置的使用此命令时需在相关命令目录下执行,redis版本为4.0.1)

1、redis服务是否存活监测(ping)

linux系统shell下输入:redis-cli -h IP地址 -p 端口 ping
出现pong说明redis存活。

2、客户端连接数(connected_clients)

redis-cli -h IP地址 -p 端口 info Clients(或者info all,info all信息包括info Clients,以下都使用info all) | grep connected_clients得到。
这个值跟redis的服务连接池配置关系比较大,建议不要超过6000,如果太大可能是redis处理太慢。

3、拒绝连接数(rejected_connections)

redis-cli -h IP地址 -p 端口 info all | grep rejected_connections
理想状态是0。如果大于0,说明创建的连接数超过了maxclients,需要排查原因。是redis连接池配置不合理还是连接这个redis实例的服务过多等。

4、阻塞客户端数量(blocked_clients)

redis-cli -h IP地址 -p 端口 info all | grep blocked_clients
这个值最好应该为0,一般是执行了list数据类型的BLPOP或者BRPOP命令引起的。

5、使用内存峰值(used_memory_peak/used_memory_peak_perc)

redis-cli -h IP地址 -p 端口 info all | grep used_memory_peak/used_memory_peak_perc
监控redis使用内存的峰值,我们都知道Redis可以通过命令config set maxmemory 内存值,设置允许使用的最大内存,同时设置最大内存时要注意,建议不要超过20G)。为了防止发生swap导致Redis性能骤降,甚至由于使用内存超标导致被系统kill,建议used_memory_peak的值与maxmemory的值有个安全区间。同时可以监控maxmemory不能少于多少G,设置小了可能导致服务器有足够内存却不能使用。

6、内存碎片率(mem_fragmentation_ratio)

redis-cli -h IP地址 -p 端口 info all | grep mem_fragmentation_ratio
mem_fragmentation_ratio=used_memory_rss/used_memory,这也是一个重要指标。redis4.0有一个主要特性就是优化内存碎片率问题(Memory de-fragmentation)。在redis.conf配置文件中有介绍即ACTIVE DEFRAGMENTATION:碎片整理允许Redis压缩内存空间,从而回收内存。这个特性默认是关闭的,可以通过命令CONFIG SET activedefrag yes热启动这个特性。当这个值大于1时,表示分配的内存超过实际使用的内存,数值越大,碎片率越严重。当这个值小于1时,表示发生了swap,即可用内存不够。另外需要注意的是,当内存使用量(used_memory)很小的时候,这个值参考价值不大。所以,建议used_memory至少2G以上才考虑对内存碎片率进行监控。

7、缓存命中率(keyspace_misses/keyspace_hits)

redis-cli -h IP地址 -p 端口 info all | grep keyspace_misses(或者keyspace_hits)
keyspace_misses/keyspace_hits这两个指标用来统计缓存的命令率,keyspace_misses指未命中次数,keyspace_hits表示命中次数。keyspace_hits/(keyspace_hits+keyspace_misses)就是缓存命中率。建议0.9以上,即缓存命中率要超过90%。如果缓存命中率过低,那么要排查对缓存的用法是否有问题!

8、缓存OPS(instantaneous_ops_per_sec)

redis-cli -h IP地址 -p 端口 info all | grep instantaneous_ops_per_sec
这个指标表示缓存的OPS,如果业务比较平稳,那么这个值也不会波动很大,这个字段的监控要结合自己的具体业务,不同时间段波动范围可能有所不同。

9、持久化(rdb_last_bgsave_status/aof_last_bgrewrite_status)

redis-cli -h IP地址 -p 端口 info all | grep rdb_last_bgsave_status(或者aof_last_bgrewrite_status)/latest_fork_usec,即最近一次或者说最后一次RDB/AOF持久化是否有问题,这两个值都应该是"ok"。另外,由于redis持久化时会fork子进程,且fork是一个完全阻塞的过程,所以可以监控fork耗时即latest_fork_usec,单位是微妙,如果这个值比较大会影响业务,甚至出现timeout。

10、失效KEY(Keyspace)

redis-cli -h IP地址 -p 端口 info all | grep Keyspace
如果把Redis当缓存使用,那么建议所有的key都设置了expire属性,且expires需要等于keys:

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!