0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

面试题:监控Redis哪些指标

马哥Linux运维 来源:51CTO博客 作者:yht_1990 2021-11-22 09:26 次阅读

监控 Redis 哪些指标?

这是一个常见的面试题,直接上菜

监控指标

  • 性能指标:Performance

  • 内存指标: Memory

  • 基本活动指标:Basic activity

  • 持久性指标: Persistence

  • 错误指标:Error

  • 性能指标:Performance


Name Description
latency Redis响应一个请求的时间
instantaneous_ops_per_sec 平均每秒处理请求总数
hi rate(calculated) 缓存命中率(计算出来的)

内存指标: Memory

Name Description
used_memory 已使用内存
mem_fragmentation_ratio 内存碎片率
evicted_keys 由于最大内存限制被移除的key的数量
blocked_clients 由于BLPOP,BRPOP,or BRPOPLPUSH而备阻塞的客户端

基本活动指标:Basic activity

Name Description
connected_clients 客户端连接数
conected_laves slave数量
master_last_io_seconds_ago 最近一次主从交互之后的秒数
keyspace 数据库中的key值总数

持久性指标: Persistence

Name Description
rdb_last_save_time 最后一次持久化保存磁盘的时间戳
rdb_changes_sice_last_save 自最后一次持久化以来数据库的更改数

错误指标:Error

Name Description
rejected_connections 由于达到maxclient限制而被拒绝的连接数
keyspace_misses key值查找失败(没有命中)次数
master_link_down_since_seconds 主从断开的持续时间(以秒为单位)

监控方式

  • redis-benchmark

  • redis-stat

  • redis-faina

  • redislive

  • redis-cli

  • monitor

  • showlog

  • 1)get:获取慢查询日志

  • 2)len:获取慢查询日志条目数

  • 3)reset:重置慢查询日志

相关配置:

slowlog-log-slower-than 1000 # 设置慢查询的时间下线,单位:微秒slowlog-max-len 100 # 设置慢查询命令对应的日志显示长度,单位:命令数
  • info(可以一次性获取所有的信息,也可以按块获取信息)

  • 1)server:服务器运行的环境参数

  • 2)clients:客户端相关信息

  • 3)memory:服务器运行内存统计数据

  • 4)persistence:持久化信息

  • 5)stats:通用统计数据

  • 6)Replication:主从复制相关信息

  • 7)CPU:CPU使用情况

  • 8)cluster:集群信息

  • 9)Keypass:键值对统计数量信息

终端info命令使用
  • ./redis-cli info 按块获取信息 | grep 需要过滤的参数
  • ./redis-cli info stats | grep ops

交互式info命令使用

 #./redis-cli> info server

	

性能监控

redis-cli info | grep ops # 每秒操作数

aeff8370-4a07-11ec-b939-dac502259ad0.png

内存监控

[root@CombCloud-2020110836 src]# ./redis-cli info | grep used | grep humanused_memory_human:2.99M  # 内存分配器从操作系统分配的内存总量used_memory_rss_human:8.04M  #操作系统看到的内存占用,top命令看到的内存used_memory_peak_human:7.77M # redis内存消耗的峰值used_memory_lua_human:37.00K   # lua脚本引擎占用的内存大小

由于BLPOP,BRPOP,or BRPOPLPUSH而备阻塞的客户端

[root@CombCloud-2020110836 src]# ./redis-cli info | grep blocked_clientsblocked_clients:0

由于最大内存限制被移除的key的数量

[root@CombCloud-2020110836 src]# ./redis-cli info | grep evicted_keysevicted_keys:0  #

内存碎片率

[root@CombCloud-2020110836 src]# ./redis-cli info | grep mem_fragmentation_ratiomem_fragmentation_ratio:2.74

已使用内存

[root@CombCloud-2020110836 src]# ./redis-cli info | grep used_memory:used_memory:3133624

	

基本活动指标

redis连接了多少客户端

通过观察其数量可以确认是否存在意料之外的连接。如果发现数量不对劲,就可以使用lcient list指令列出所有的客户端链接地址来确定源头。

[root@CombCloud-2020110836 src]# ./redis-cli info | grep connected_clientsconnected_clients:1[root@CombCloud-2020110836 src]# ./redis-cli info | grep connectedconnected_clients:1   # 客户端连接数量connected_slaves:1   # slave连接数量

	

持久性指标

[root@CombCloud-2020110836 src]# ./redis-cli info | grep rdb_last_save_timerdb_last_save_time:1591876204  # 最后一次持久化保存磁盘的时间戳[root@CombCloud-2020110836 src]# ./redis-cli info | grep rdb_changes_since_last_saverdb_changes_since_last_save:0   # 自最后一次持久化以来数据库的更改数

	

错误指标

由于超出最大连接数限制而被拒绝的客户端连接次数,如果这个数字很大,则意味着服务器的最大连接数设置得过低,需要调整maxclients

[root@CombCloud-2020110836 src]# ./redis-cli info | grep connected_clientsconnected_clients:1

	

key值查找失败(没有命中)次数,出现多次可能是被黑客攻击

[root@CombCloud-2020110836 src]# ./redis-cli info | grep keyspacekeyspace_misses:0

	

主从断开的持续时间(以秒为单位)

[root@CombCloud-2020110836 src]# ./redis-cli info | grep rdb_changes_since_last_saverdb_changes_since_last_save:0

	

复制积压缓冲区如果设置得太小,会导致里面的指令被覆盖掉找不到偏移量,从而触发全量同步

[root@CombCloud-2020110836 src]# ./redis-cli info | grep backlog_sizerepl_backlog_size:1048576

	

通过查看sync_partial_err变量的次数来决定是否需要扩大积压缓冲区,它表示主从半同步复制失败的次数

[root@CombCloud-2020110836 src]# ./redis-cli info | grep sync_partial_errsync_partial_err:1

	

redis性能测试命令

./redis-benchmark -c 100 -n 5000

	

说明:100个连接,5000次请求对应的性能。

责任编辑:haq
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 内存
    +关注

    关注

    8

    文章

    3002

    浏览量

    73887
  • 监控系统
    +关注

    关注

    21

    文章

    3860

    浏览量

    173501
  • Redis
    +关注

    关注

    0

    文章

    371

    浏览量

    10846

原文标题:面试官:你都监控 Redis 哪些指标?

文章出处:【微信号:magedu-Linux,微信公众号:马哥Linux运维】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    Redis开源版与Redis企业版,怎么选用?

    点击“蓝字”关注我们数以千计的企业和数以百万计的开发人员Redis开源版来构建应用程序。但随着用户数量、数据量和地区性的增加,成本、可扩展性、运营和可用性等问题也随之而来。Redis企业版
    的头像 发表于 04-04 08:04 963次阅读
    <b class='flag-5'>Redis</b>开源版与<b class='flag-5'>Redis</b>企业版,怎么选用?

    GaussDB(for Redis) 特性揭秘:大 key 治理

    (for Redis)提供了完备的大 Key 解决方案,支持大 Key 在线诊断、监控预警、承载力强等能力,让 DBA 如虎添翼
    的头像 发表于 03-28 22:06 651次阅读
    GaussDB(for <b class='flag-5'>Redis</b>) 特性揭秘:大 key 治理

    什么是守护线程?守护线程的底层原理和使用示例

    大家好,今天这篇文章来梳理一下有关守护线程的相关问题,这也是之前曾经有被问到过的面试题,在此之前我们先看一看守护线程的使用示例。
    的头像 发表于 01-05 11:01 1347次阅读
    什么是守护线程?守护线程的底层原理和使用示例

    经典Linux面试题总结

    绝对路径用什么符号表示?当前目录、上层目录用什么表示?主目录用什么表示? 切换目录用什么命令?
    的头像 发表于 01-04 11:01 344次阅读

    总结常见电路面试题

    输入信号应提前时钟上升沿(如上升沿有效)T时间到达芯片,这个T就是建立时间-Setup time。如不满足setup time,这个数据就不能被这一时钟打入触发器,只有在下一个时钟上升沿,数据才能被打入触发器。
    的头像 发表于 01-02 16:03 396次阅读

    聊聊Redis的使用案例

    今天我们来聊聊 Redis 的使用案例。
    的头像 发表于 12-13 14:13 488次阅读

    nginx常见面试题:负载均衡有哪些算法?

    正向代理是位于用户设备和互联网之间的服务器。它代理的是客户端,是站在用户一方的。其真实客户端对于服务器不可见。
    的头像 发表于 12-07 10:45 557次阅读
    nginx常见<b class='flag-5'>面试题</b>:负载均衡有哪些算法?

    redis容器内怎么查看redis日志

    redis是一款流行的开源内存数据库,常用于缓存、消息队列、任务管理等场景。在使用redis时,了解如何查看redis日志对于排查问题、监控性能和分析应用程序行为非常重要。在本文中,我
    的头像 发表于 12-05 10:10 3489次阅读

    redis的lru原理

    Redis是一种基于内存的键值数据库,它使用了LRU(Least Recently Used)算法来进行缓存的数据淘汰。LRU算法的核心思想是最近最少使用的数据将会在未来也不常用,因此应该优先
    的头像 发表于 12-05 09:56 604次阅读

    redis的原理和使用场景

    Redis(Remote Dictionary Server)是一个开源的、高性能的非关系型(NoSQL)的键值对数据库管理系统。它以其快速读写能力和多种数据结构支持而闻名,并被广泛应用于缓存
    的头像 发表于 12-04 16:29 567次阅读

    redis的淘汰策略

    Redis是一种基于内存的键值存储系统,为了充分利用内存,Redis采用了一些淘汰策略来管理内存空间。淘汰策略的作用是当内存空间不足时,选择合适的数据对象进行淘汰,释放出更多的内存空间,以供后续
    的头像 发表于 12-04 16:23 522次阅读

    redis查看主从节点命令

    Redis是一种开源的内存数据结构存储系统,常被用作数据库、缓存和消息中间件。在Redis中,可以通过一些命令来查看主从节点的信息,以便进行监控和管理。 Redis 主从复制是指将一个
    的头像 发表于 12-04 11:44 1241次阅读

    Java redis锁怎么实现

    在Java中实现Redis锁涉及到以下几个方面:Redis的安装配置、Redis连接池的使用、Redis数据结构的选择、实现分布式锁的几种方式等。 一、
    的头像 发表于 12-04 10:47 1118次阅读

    redis集群状态查看命令

    Redis集群是一种高可用性的分布式架构,可以通过多个节点实现数据的复制和负载均衡。为了维护集群的稳定性和可靠性,管理员需要监控和查看集群的状态。下面是详细介绍Redis集群状态查看命令
    的头像 发表于 12-04 10:44 1243次阅读

    Windows Docker部署Redis的流程

    由于 Docker 部署 Redis 后,Redis 容器中默认是没有 redis.conf 配置文件的,需要自己手动挂在进去。
    的头像 发表于 11-27 10:02 858次阅读
    Windows Docker部署<b class='flag-5'>Redis</b>的流程