凡科建站,河北住房和城乡建设官网,深建小程序,哈尔滨建站系统Redis 也是一个对外服务#xff0c;所以 Google 的四个黄金指标同样适用于 Redis。
1、延迟
在软件工程架构中#xff0c;之所以选择 Redis 作为技术堆栈的一员#xff0c;大概率是想要得到更快的响应速度和更高的吞吐量#xff0c;所以延迟数据对使用 Redis 的应用程序至…Redis 也是一个对外服务所以 Google 的四个黄金指标同样适用于 Redis。
1、延迟
在软件工程架构中之所以选择 Redis 作为技术堆栈的一员大概率是想要得到更快的响应速度和更高的吞吐量所以延迟数据对使用 Redis 的应用程序至关重要。
客户端应用程序埋点。比如某个 Java 或 Go 的程序在调用 Redis 的时候计算一下各个命令花费了多久然后把耗时数据推给监控系统即可。这种方式好处是非常灵活想要按照什么维度统计就按照什么维度统计缺点自然是代码侵入性。使用 redis-cli 的 --latency 命令这个原理比较简单就是客户端连上 redis-server然后不断发送 ping 命令统计耗时。
Redis 是单线程顺序执行的模型如果某个请求执行得慢其他所有客户端都得等着所以我们使用 ping 命令对 redis-server 做探测理论上探测结果是可以反映 redis-server 的真实工况的。Redis 默认的配置是 10 毫秒。
2、流量
Redis 每秒处理多少请求每秒接收多少字节、返回多少字节在 Redis 里都内置了相关指标通过 redis-cli 连上 Redis执行 info all 命令可以看到很多指标绝大部分监控系统都是从 info 命令的返回内容中提取的指标。正常来讲一个 Redis 实例每秒处理几万个请求都是很正常的。
ops_per_sec 表示每秒执行多少次操作input_kbps 表示每秒接收多少 KiBoutput_kbps 表示每秒返回多少 KiB。如果把 Redis 当做缓存来使用我们还需关注 keyspace_hits 和 keyspace_misses 两个指标。这两个指标都是 Counter 类型单调递增即 Redis 实例启动以来统计的所有命中的数量和未命中的数量。如果要统计总体的命中率使用 hits 除以总量即可。
3、错误
Redis 在响应客户端请求时通常不会有什么内部错误产生毕竟只是操作内存依赖比较少出问题的概率就很小了。如果客户端操作 Redis 返回了错误大概率是网络问题或命令写错了导致的。最好是做客户端埋点监控自己发现了然后自己去解决。
Redis 对客户端的数量也有一个最大数值的限制默认是 10 万如果超过了这个数量rejected_connections 指标就会 1。和 MySQL 不一样的是Redis 使用过程中应该很少遇到超过最大连接数maxclients 的情况不过谨慎起见也可以对 rejected_connections 做一下监控。
4、饱和度
Redis 重度使用内存内存的使用率、碎片率以及因为内存不够用而清理的 Key 数量都是需要重点关注的。我们通过 info memory 命令查看一下这几个关键指标。
used_memory 顾名思义就是使用了多少内存是从 Redis 自身视角来看的human 后缀表示用人类易读的方式来表示。used_memory_rss 表示从操作系统视角来看分配了多少内存给 Redis。used_memory_rss 除以 used_memory 就是内存碎片率即 mem_fragmentation_ratio。 此文章为8月Day7学习笔记内容来源于极客时间《运维监控系统实战笔记》推荐该课程。