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

    文章

    2767

    浏览量

    72761
  • 监控系统
    +关注

    关注

    21

    文章

    3612

    浏览量

    169254
  • Redis
    +关注

    关注

    0

    文章

    362

    浏览量

    10492

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

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

收藏 人收藏

    评论

    相关推荐

    redis容器内怎么查看redis日志

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

    求解三极管电路的输出电位值

    面试题的选择当然是偶个人觉得比较好的,所以肯定有一定的主观性。咱以前为公司招聘时也出过题目,都是最简单的(例如,给一个“场效应管驱动电磁继电器”电路,让你描述一些元件的作用),至于工程师能力与经验
    的头像 发表于 11-20 17:38 599次阅读
    求解三极管电路的输出电位值

    硬件工程师经典面试题详解

    硬件工程师经典面试题详解
    的头像 发表于 11-20 15:08 750次阅读
    硬件工程师经典<b class='flag-5'>面试题</b>详解

    Feign的超时时间如何设置呢?

    今天来聊一聊前段时间看到的一个面试题,也是在实际项目中需要考虑的一个问题,Feign 的超时时间如何设置?
    的头像 发表于 11-15 10:22 461次阅读
    Feign的超时时间如何设置呢?

    30道Linux面试题总结

    如果你是一名开发人员、系统管理员,或是仅仅对 Linux 感兴趣,那么这个列表是为你准备的。它包含了类 Unix 系统管理或编程职位面试中涉及 Linux 相关的所有常见问题。
    发表于 10-27 15:29 764次阅读
    30道Linux<b class='flag-5'>面试题</b>总结

    c语言面试题集(完整版)

    电子发烧友网站提供《c语言面试题集(完整版).pdf》资料免费下载
    发表于 10-20 11:20 1次下载
    c语言<b class='flag-5'>面试题</b>集(完整版)

    Redis中的使用

    Redis 作为内存的存储中间件,已经是面试面试题必问之一了,今天一起来看看 Redis 的事务吧。 事务提供了一种"将多个命令打包,一次性提交并按顺序执行"的机制,提交后在事务执行
    的头像 发表于 10-08 15:27 224次阅读
    <b class='flag-5'>Redis</b>中的使用

    面试射频工程师需要知道的基础知识

    大家好,这里是射频学堂,今天给大家整理了一下一些知名外企射频类岗位面试题集,这些外企包括:Apple, Qualcomm, MediaTek, Intel, Samsung, Skyworks, Keysight, pSemi, Qorvo, Anokiwave 等等。
    的头像 发表于 08-15 10:15 1074次阅读

    常见的嵌入式C语言面试题

    数组是最基本的数据结构,关于数组的面试题也屡见不鲜,本文罗列了一些常见的面试题,仅供参考。目前有以下18道题目。
    发表于 07-18 10:46 590次阅读

    详解C/C++中的getMemory()函数

    如果你将面试一份 C/C++的工作,那么无论是笔试题或者面试题都有极大可能会被问到getMemory()的问题。当然这也是一道比较纠结的题目,本文就对这几道题目来做一个分析对比。
    发表于 07-17 17:35 406次阅读

    Redis常见面试题(2023 版本)

    Redis 提供了多种数据类型来支持不同的业务场景,比如 String(字符串)、Hash(哈希)、 List (列表)、Set(集合)、Zset(有序集合)、Bitmaps(位图
    的头像 发表于 06-28 16:17 792次阅读
    <b class='flag-5'>Redis</b>常见<b class='flag-5'>面试题</b>(2023 版本)

    iOS多线程面试题解析

    这是某大厂的面试原题,我当时第一问回答对了,然后第二问就凉凉了。
    发表于 06-15 10:28 304次阅读

    【经典面试题】请使用C语言编程实现对IPV4地址的合法性判断

    【经典面试题】请使用C语言编程实现对IPV4地址的合法性判断
    的头像 发表于 05-16 15:23 1132次阅读

    Spring事务在哪几种情况下会不生效?

    日常开发中,我们经常使用到spring事务。最近星球一位还有去美团面试,被问了这么一道面试题: Spring 事务在哪几种情况下会不生效?
    的头像 发表于 05-10 17:53 564次阅读
    Spring事务在哪几种情况下会不生效?

    分享10道有趣的嵌入式C语言面试题及答案

    10个C语言面试题,涉及指针、进程、运算、结构体、函数、内存,看看你能做出几个!
    的头像 发表于 05-09 10:54 1699次阅读