redis监控指标

2023-11-09

  • 服务器系统数据采集
  • Redis Server数据采集
  • Redis响应时间数据采集
  • Redis监控Screen
    <b>
    <b>
    <b>

一、服务器存活监控

1>ping监控告警

2>CPU

3>丢包率

<b>

二、Redis Server监控数据采集

  • ping,info all, slowlog get/len/reset/cluster info/config get

<b>

Redis存活监控

  • redis存活监控 (redis_alive):redis本地监控agent使用ping,如果指定时间返回PONG表示存活,否则redis不能响应请求,可能阻塞或死亡。当返回值不为1时,redis挂了,告警

[root@tzgdevapp10 bin]# ./redis-cli -c -p 7000 ping | grep -c PONG
1

<b>

  • 连接个数 (connected_clients):客户端连接个数,如果连接数过高,影响redis吞吐量。>5000 时告警

[root@tzgdevapp10 bin]# ./redis-cli -c -p 7000 info | grep -w "connected_clients" | awk -F":" '{print $2}'
1
  • 连接数使用率(connected_clients_pct): 连接数使用百分比,通过(connected_clients/maxclients)计算;如果达到1,redis开始拒绝新连接创建,告警

<b>

  • 拒绝的连接个数(rejected_connections): redis连接个数达到maxclients限制,拒绝新连接的个数。告警

[root@tzgdevapp10 bin]# ./redis-cli -c -p 7000 info | grep -w rejected_connections
rejected_connections:0
  • 新创建连接个数 (total_connections_received): 如果新创建连接过多,过度地创建和销毁连接对性能有影响,说明短连接严重或连接池使用有问题,告警。

[root@tzgdevapp10 bin]# ./redis-cli -c -p 7000 info | grep -w total_connections_received
total_connections_received:217

<b>

  • list阻塞调用被阻塞的连接个数 (blocked_clients): 如果监控数据大于0,告警

[root@tzgdevapp10 bin]# ./redis-cli -c -p 7000 info | grep -w blocked_clients
blocked_clients:0

<b>

  • redis分配的内存大小 (used_memory): redis真实使用内存,不包含内存碎片

[root@tzgdevapp10 bin]# ./redis-cli -c -p 7000 info | grep -w used_memory
used_memory:2513656

<b>

  • redis进程使用内存大小(used_memory_rss): 进程实际使用的物理内存大小,包含内存碎片;如果rss过大导致内部碎片大,内存资源浪费,和fork的耗时和cow内存都会增大。

[root@tzgdevapp10 bin]# ./redis-cli -c -p 7000 info | grep -w used_memory_rss
used_memory_rss:9728000

<b>

  • redis内存碎片率 (mem_fragmentation_ratio): 表示(used_memory_rss/used_memory),碎片率过大,导致内存资源浪费,不设置告警。小于1,表示redis已使用swap分区,则告警

[root@tzgdevapp10 bin]# ./redis-cli -c -p 7000 info | grep -w mem_fragmentation_ratio
mem_fragmentation_ratio:3.89

<b>

  • 键个数 (keys): redis实例包含的键个数。单实例键个数过大,可能导致过期键的回收不及时。

[root@tzgdevapp10 bin]# ./redis-cli -c -p 7000 info | grep -w keys | awk -F':' '{print $2}' | awk -F',' '{print $1}' | awk -F'=' '{print $2}'
43

<b>

  • redis处理的命令数 (total_commands_processed): 监控采集周期内的平均qps

./redis-cli -c -p 7000 info | grep -w total_commands_processed| awk -F':' '{print $2}'

<b>

  • redis当前的qps (instantaneous_ops_per_sec): redis内部较实时的每秒执行的命令数

./redis-cli -c -p 7000 info | grep -w instantaneous_ops_per_sec | awk -F':' '{print $2}'

<b>

  • 请求键被命中次数 (keyspace_hits): redis请求键被命中的次数

[root@tzgdevapp10 bin]# ./redis-cli -c -p 7000 info | grep -w keyspace_hits | awk -F':' '{print $2}'
354

<b>

  • 请求键未被命中次数 (keyspace_misses): redis请求键未被命中的次数

[root@tzgdevapp10 bin]# ./redis-cli -c -p 7000 info | grep -w keyspace_misses
keyspace_misses:122

<b>

  • 请求键的命中率 (keyspace_hit_ratio):使用keyspace_hits/(keyspace_hits+keyspace_misses)计算所得,命中率低于50%告警

<b>

  • 最近一次fork阻塞的微秒数 (latest_fork_usec): 最近一次Fork操作阻塞redis进程的耗时数,单位微秒。

[root@tzgdevapp10 bin]# ./redis-cli -c -p 7000 info | grep -w latest_fork_usec
latest_fork_usec:315

三、Redis集群监控

  • cluster info 、info

<b>

  • 实例是否启用集群模式 (cluster_enabled): 通过info的cluster_enabled监控是否启用集群模式。不等于1则告警

[root@tzgdevapp10 bin]# ./redis-cli -c -p 7000 info | grep -w cluster_enabled
cluster_enabled:1

<b>

  • 集群健康状态 (clusster_state):cluster_state不为OK则告警

[root@tzgdevapp10 bin]# ./redis-cli -c -p 7000 cluster info
cluster_state:ok

<b>

  • 集群数据槽slots分配情况 (cluster_slots_assigned):集群正常运行时,默认16384个slots

不等于16384则告警

[root@tzgdevapp10 bin]# ./redis-cli -c -p 7000 cluster info | grep -w cluster_slots_ok
cluster_slots_ok:16384

<b>

  • 检测下线的数据槽slots个数 (cluster_slots_fail):集群正常运行时,应该为0. 如果大于0说明集群有slot存在故障。

[root@tzgdevapp10 bin]# ./redis-cli -c -p 7000 cluster info | grep -w cluster_slots_fail
cluster_slots_fail:0

<b>

  • 集群的节点数 (cluster_known_nodes):集群中redis节点的个数

[root@tzgdevapp10 bin]# ./redis-cli -c -p 7000 cluster info | grep -w cluster_known_nodes
cluster_known_nodes:6

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

redis监控指标 的相关文章

  • Redis Docker compose无法处理RDB格式版本10

    我无法在 docker compose 文件中启动 redis 容器 我知道docker compose文件没问题 因为我的同事可以成功启动项目 我读到有一个删除 dump rdb 文件的解决方案 但我找不到它 我使用Windows机器 任
  • 有没有办法在 ruby​​ 中重新定义 []=+

    我正在尝试编写一个简单的 DSL 针对 Redis 并且我想自己定义 I have def key val redis zadd name val key end 我想定义 def key val redis zincrby name va
  • Spring Data JPA Redis:无法编写基于自定义方法的查询

    我已经使用 Redis 配置了 Spring Data JPA 并使用RedisRepositorieswith 提供了类似的方法find findAll 所有这些方法似乎都工作得很好 但我无法编写我的自定义方法 RedisEntity f
  • Laravel 所有会话 ID 与 Redis 驱动程序

    在我的应用程序中 我希望允许某些用户能够注销除他 她之外的所有其他用户 当会话驱动程序设置为文件时 我已经完成了此功能 但现在我使用 redis 作为会话驱动程序 并且我无法找到任何方法来列出所有当前会话 就像我在文件时所做的那样司机 问题
  • 为什么Redis中没有有序的hashmap?

    Redis 数据类型 http redis io topics data types包括排序集 http redis io topics data types intro sorted sets以及其他用于键值存储的必要数据结构 但我想知道
  • redis 2.8.7 Linux Sentinel环境配置问题,如何使其自启动,应该订阅什么?

    现在我们尝试使用 redis 2 8 7 作为缓存存储 来自使用 booksleeve 客户端的 NET Web 应用程序 目前看来这是一个非常有趣和令人兴奋的任务 redis 文档非常好 但由于缺乏真正的实践经验 我确实有几个关于如何正确
  • 在 Redis 上为 Django 和 Express.js 应用程序共享会话存储

    我想创建一个包含一些登录用户的 Django 应用程序 另一方面 由于我想要一些实时功能 所以我想使用 Express js 应用程序 现在的问题是 我不希望身份不明的用户访问 Express js 应用程序的日期 因此 我必须在 Expr
  • Scala 使用的 Redis 客户端库建议

    我正在计划使用 Scala 中的 Redis 实例进行一些工作 并正在寻找有关使用哪些客户端库的建议 理想情况下 如果存在一个好的库 我希望有一个为 Scala 而不是 Java 设计的库 但如果现在这是更好的方法 那么仅使用 Java 客
  • Spring Redis删除不删除key

    我正在尝试删除一个 Redis 键 但由于某种原因它没有删除 但也没有抛出异常 这是我要删除的代码 import com example service CustomerService import com example model Cu
  • 当 Jedis 与 Spring Data 一起使用时,为什么数据会以奇怪的键存储在 Redis 中?

    我将 Spring Data Redis 与 Jedis 一起使用 我正在尝试存储带有密钥的哈希值vc list id 我能够成功插入到redis 但是 当我使用 redis cli 检查密钥时 我没有看到密钥vc 501381 相反我看到
  • Spring Redis 排序键

    我在 Redis Spring Data Redis 中有以下键 localhost gt Keys 1 id 1 Name C5796 Site DRG1 2 id 2 Name CX1XE Site DG1 3 id 3 Name C5
  • 超出 Redis 连接/缓冲区大小限制

    在对我们的应用程序服务器进行压力测试时 我们从 Redis 中得到以下异常 ServiceStack Redis RedisException 无法连接到 redis host 6379 处的 redis 实例 gt System Net
  • ServiceStack.Redis:无法连接:sPort:

    我经常得到 ServiceStack Redis 无法连接 sPort 0 或 ServiceStack Redis 无法连接 sPort 50071 或其他端口号 当我们的网站比较繁忙时 就会出现这种情况 Redis 本身看起来很好 CP
  • 将文件传递给活动作业/后台作业

    我通过标准文件输入接收请求参数中的文件 def create file params file upload Upload create file file filename img png end 但是 对于大型上传 我想在后台作业中执行
  • Redis 在键过期时更新排序集

    我有一个 Redis 服务器 其中包含一组键值对和一个排序集 提供这些键值对的键的索引 键值对可以进入 已完成 状态 此时需要在 1 小时后删除它们 这可以通过在键上设置到期时间来简单地实现 但从排序集中清除它们似乎更成问题 我可以有一个过
  • nginx/uwsgi 服务器的持久内存中 Python 对象

    我怀疑这是否可能 但这是问题和提出的解决方案 提出的解决方案的可行性是这个问题的对象 我有一些需要可用于所有请求的 全局数据 我将这些数据保存到 Riak 并使用 Redis 作为缓存层以提高访问速度 目前 数据被分为约 30 个逻辑块 每
  • redis能完全取代mysql吗?

    简单的问题 我是否可以使用 redis 而不是 mysql 来处理各种 Web 应用程序 社交网络 地理位置服务等 IT 领域没有什么是不可能的 但有些事情可能会变得极其复杂 将键值存储用于全文搜索之类的事情可能会非常痛苦 另外 据我所知
  • memcache、redis 和 ehcache 作为分布式缓存框架的比较 [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我需要做出的决定之一是在我的系统中使用什么缓存框架 有这么多可供选择 我目前正在研究 redis ehcache 和 memcached
  • 具有匹配模式的 ioredis 密钥

    我想用键匹配模式 LOGIN 搜索 Redis 数据库 我在我的应用程序中使用 ioredis 昨天我搜索了整个网络 我得到了一些执行这项工作的选项 如下所示 KEYS 扫描流 Issue import Redis from ioredis
  • 如何高效地将数十亿数据插入Redis?

    我有大约 20 亿个键值对 我想将它们有效地加载到 Redis 中 我目前正在使用 Python 并使用 Pipe 如redis py https redis py readthedocs io en latest redis Redis

随机推荐

  • 关于虚函数、父类指针、父类子类内存访问的一道很有意思的笔试题

    1 题目 1 1 原题 include
  • 你知道每片晶圆能卖多少钱吗?-道合顺大数据infinigo

    你知道 卖一颗芯片究竟能赚多少钱吗 根据市场调研机构IC Insights发布的最新数据显示 在7nm工艺需求强劲 以及5nm工艺量产的推动下 2020年台积电每片晶圆营收达到1634美元 约合人民币10568元 单颗芯片营收居全球半导体产
  • Microsoft Jet SQL for Access 2000

    该系列的文章解释了什么是Microsoft Jet SQL 并说明了它如何在Access 2000的应用程序中使用 本文是基础 中级和高级三篇中的第二篇 这些文章循序渐进的说明了使用Jet SQL的语法和一些方法 并示范了对于Access
  • 程序分析

    程序分析 百科名片 程序分析是指对 计算机程序行为进行自动分析的过程 主要包括静态分析和动态分析两种策略 目录 简介 什么是程序分析 程序分析的目的 程序分析的种类及图表 程序分析的记录符号 程序分析的技巧 程序分析的实施及步骤 程序分析的
  • 后渗透中提权的必要性和思路

    很多同学常常问起 渗透测试中获取服务器权限后一定要提权吗 为什么要提权呢 故有此文 提权的必要性 在一场完整的渗透测试中 如果已经获取服务器权限 此时就进入后渗透阶段了 渗透的最终目的是获取服务器的最高权限 即windows操作系统中管理员
  • 牛客网_剑指Offer_Python实现_更新中

    剑指Offer编程题汇总 第1题 二维数组中的查找 第2题 替换空格 第3题 从尾到头打印链表 第4题 重建二叉树 第5题 用两个栈实现队列 第6题 旋转数组的最小数字 第7题 斐波那契数列 第8题 跳台阶 第9题 变态跳台阶 第10题 矩
  • 计算圆周率

    根据用户输入计算圆周率 import math import random def type judge pi type 接收一个字符串为参数 根据参数调用相应函数计算圆周率 if pi type 割圆法 times int input 输
  • StringBuffer 和StringBuilder的应用场景

    StringBuffer线程安全 StringBuilder线程不安全 StringBuffer比StringBuilder慢 网络上有很多的文章有说到他们两个的区别 以及应用场景 这里说下个人感悟 StringBuffer更多会和修改全局
  • 伯努利分布、二项分布、泊松分布、指数分布、Gamma分布的联系

    伯努利分布 0 1分布 伯努利分布是二项分布在N 1时的特例 随机变量为取值为0或者1 二项分布 N次重复且独立的伯努利实验 随机变量为在N次实验中出现某种情况 概率为p 的次数K 泊松分布 二项分布的极限形式 N趋于无穷大 P趋于0 描述
  • 工具:语雀导出MarkDown文档后图片修复

    微信公众号 乌鸦安全 扫取二维码获取更多信息 01 描述 在比较早的时候 我比较纠结记笔记的产品 最初的时候是在使用Typora在本地写Markdown文档 后来试用了一下印象笔记 但是它的缺点就是贵 而且上传的流量很少 在之后氪金的一刹那
  • 从一张表数据选出,插入另外一张表

    在CSDN搜到一篇博文原文如下 今天在做数据库操作的时候 有一个需求是将A表中的前500000条数据查出来 然后插入到表B中 表A与表B具有同样的字段类型 数据库为Oracle 10g 数据库管理工具用的PL SQL 由于数据库不是特别的熟
  • vue中使用WebSocket(ui用的ant design)

    那些原理 和什么情况下时候适合用WebSocket我这就不多说 直接上代码 哈哈 拷贝即用
  • fast虚拟服务器地址,fast虚拟服务器地址

    fast虚拟服务器地址 内容精选 换一换 参数说明如下 VPC网段 VPC的地址范围 根据规划的子网信息 配置VPC的地址范围 子网网段 VPC中默认子网的地址范围 需要在VPC的子网地址范围内 根据规划的信息进行配置 DNS服务器地址 默
  • 多个Livox雷达点云合成及使用ROS发布

    项目场景 因为单个Livox avia的FOV只有70 无法覆盖车前方的所有范围 所以用了三个Livox avia以实现180 前方位覆盖 但由于三个雷达均是独自采集 所以需要对每个雷达采集的各帧点云进行合并 用于建图 以下工作均建立于已经
  • [C进阶] 数据在内存中的存储——整形篇

    前言 学习一门语言就像是了解一个陌生人 首先我们要做的是从外貌和举止来宏观上考察一个人的特点 然后逐渐的对其进行深入了解 最终变得知根知底 畅所欲言 本章我们对数据存储的探讨其实就是在对C语言进行深入了解 因为只有知根知底才能畅所欲言 本章
  • 路由器选择使用指南这三Openwrt

    一 关于Openwrt 嗯 这个和华硕没什么关系 虽然也是亲戚 同样源于linux 所以linux最牛 关于这个固件可以说的就多了 前面padavan比较水 这个多写点 Openwrt有很多大神小神毛神小白在为它编译固件 说到这个就不得不提
  • CEF使用的几个注意点

    转自http www cnblogs com gongxijun p 4857977 html CEF为chrome浏览器的切入其他浏览器中的轻量级框架 开发的客户端的时候 这是作为界面显示的首先 可以增强客户的易变性 可塑性 在开发的过程
  • 计算机网络中的泊松分布与指数分布

    一 概率论知识 1 1 泊松分布 一个时间段里某件事发生的概率 用泊松分布来描述 1 2 指数分布 两个事件的间隔时间为某个值的概率 用指数分布来描述 1 3 两者关系 其中 服从泊松分布的事件 其间隔时间服从指数分布 二 计算机网络知识
  • 深度学习撞墙了?

    转自 机器之心 早在 2016 年 Hinton 就说过 我们不用再培养放射科医生了 如今几年过去 AI 并没有取代任何一位放射科医生 问题出在哪儿 近年来 AI 在大数据 大模型的深度学习之路上一路狂奔 但很多核心问题依然没有解决 比如如
  • redis监控指标

    服务器系统数据采集 Redis Server数据采集 Redis响应时间数据采集 Redis监控Screen b b b 一 服务器存活监控 1 gt ping监控告警 2 gt CPU 3 gt 丢包率 b 二 Redis Server监