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 # 每秒操作数
内存监控
[root@CombCloud-2020110836 src]# ./redis-cli info | grep used | grep human
used_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_clients
blocked_clients:0
由于最大内存限制被移除的key的数量
[root@CombCloud-2020110836 src]# ./redis-cli info | grep evicted_keys
evicted_keys:0 #
内存碎片率
[root@CombCloud-2020110836 src]# ./redis-cli info | grep mem_fragmentation_ratio
mem_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_clients
connected_clients:1
[root@CombCloud-2020110836 src]# ./redis-cli info | grep connected
connected_clients:1 # 客户端连接数量
connected_slaves:1 # slave连接数量
持久性指标
[root@CombCloud-2020110836 src]# ./redis-cli info | grep rdb_last_save_time
rdb_last_save_time:1591876204 # 最后一次持久化保存磁盘的时间戳
[root@CombCloud-2020110836 src]# ./redis-cli info | grep rdb_changes_since_last_save
rdb_changes_since_last_save:0 # 自最后一次持久化以来数据库的更改数
错误指标
由于超出最大连接数限制而被拒绝的客户端连接次数,如果这个数字很大,则意味着服务器的最大连接数设置得过低,需要调整maxclients
[root@CombCloud-2020110836 src]# ./redis-cli info | grep connected_clients
connected_clients:1
key值查找失败(没有命中)次数,出现多次可能是被黑客攻击
[root@CombCloud-2020110836 src]# ./redis-cli info | grep keyspace
keyspace_misses:0
主从断开的持续时间(以秒为单位)
[root@CombCloud-2020110836 src]# ./redis-cli info | grep rdb_changes_since_last_save
rdb_changes_since_last_save:0
复制积压缓冲区如果设置得太小,会导致里面的指令被覆盖掉找不到偏移量,从而触发全量同步
[root@CombCloud-2020110836 src]# ./redis-cli info | grep backlog_size
repl_backlog_size:1048576
通过查看sync_partial_err变量的次数来决定是否需要扩大积压缓冲区,它表示主从半同步复制失败的次数
[root@CombCloud-2020110836 src]# ./redis-cli info | grep sync_partial_err
sync_partial_err:1
redis性能测试命令
./redis-benchmark -c 100 -n 5000
说明:100个连接,5000次请求对应的性能。
Redis 监控指标的更多相关文章
- DB监控-redis监控
公司的redis业务很多,redis监控自然也是DB监控的一大模块,包括采集.展示.监控告警.本文主要介绍redis监控的主要指标和采集方法. 一.Redis监控系统逻辑 1.DBA通过前台页面添加r ...
- [转]细说Redis监控和告警
原文 https://zhuoroger.github.io/2016/08/20/redis-monitor-and-alarm/? 对于任何应用服务和组件,都需要一套完善可靠谱监控方案. 尤其r ...
- 做个简单的Redis监控(源码分享)
Redis监控 Redis 是目前应用广泛的NoSQL,我做的项目中大部分都是与Redis打交道,发现身边的朋友也更多人在用,相对于memcached 来说,它的优势也确实是可圈可点.在随着业务,数据 ...
- 记一次线上Zabbix对Redis监控实录
前言:Redis作为缓存服务器我想大家都比较的熟悉,那么,如果想要更好的维护和监控,那么我们会对其redis服务器统一监控起来,如何监控呢?如果在生产环境一台服务器部署多个redis,这样就会出现多个 ...
- 做个简单的Redis监控(源码分享)[转载]
Redis监控 Redis 是目前应用广泛的NoSQL,我做的项目中大部分都是与Redis打交道,发现身边的朋友也更多人在用,相对于memcached 来说,它的优势也确实是可圈可点.在随着业务,数据 ...
- signalfx的中间件监控指标so cool
signalfx的中间件监控指标so cool www.jianshu.com 对于我们做运维的来说,监控是最基本的东西,不过在初创公司很多计划是跟不上项目架构变化的,项目中会不断加入各种服务和组 ...
- 【0.2】【MySQL】常用监控指标及监控方法(转)
[MySQL]常用监控指标及监控方法 转自:https://www.cnblogs.com/wwcom123/p/10759494.html 对之前生产中使用过的MySQL数据库监控指标做个小结. ...
- Redis监控调研
1 调研目的 主要的目的是想调研各大云平台有关Redis监控功能的实现,但是最后我发现各大云平台提供的监控功能都比较基础,比如我想看诸如访问频率较高的HotKey.占用内存较大的Bigkey等指标,它 ...
- 抛砖系列之redis监控命令
前言 redis是一款非常流行的kv数据库,以高性能著称,其高吞吐.低延迟等特性让广大开发者趋之若鹜,每每看到别人发出的redis故障报告都让我产生一种居安思危,以史为鉴的危机感,恰逢今年十一西安烟雨 ...
随机推荐
- springboot creating bean with name 'sqlSessionFactory'
pom.xml文件配置 <build> <plugins> <plugin> <groupId>org.springframework.boot< ...
- 02 MySQL_数据库相关的SQL
数据库相关的SQL 1. 查看所有数据库 show databases; 2. 创建数据库 格式:create database 数据库名称: 示例: create database db1; 3. ...
- net core天马行空系列-各大数据库快速批量插入数据方法汇总
1.前言 hi,大家好,我是三合.我是怎么想起写一篇关于数据库快速批量插入的博客的呢?事情起源于我们工作中的一个需求,简单来说,就是有一个定时任务,从数据库里获取大量数据,在应用层面经过处理后再把结果 ...
- Java学习第五周
这周学习了异常与多线程,线程使用 Exception异常的分类: 1.编译时异常:继承自Exception的异常或者其子类,编译阶段就会报错 2.运行时异常:继承自RuntimeException的异 ...
- Javascript 构造函数、原型对象、实例之间的关系
# Javascript 构造函数.原型对象.实例之间的关系 # 创建对象的方式 # 1.new object() 缺点:创建多个对象困难 var hero = new Object(); // 空对 ...
- 论文解读(DropEdge)《DropEdge: Towards Deep Graph Convolutional Networks on Node Classification》
论文信息 论文标题:DropEdge: Towards Deep Graph Convolutional Networks on Node Classification论文作者:Yu Rong, We ...
- HDU 1542/POJ 1151 Atlantis (scaning line + segment tree)
A template of discretization + scaning line + segment tree. It's easy to understand, but a little di ...
- Node.js + Express + Knex 开发 API 接口
安装依赖包 npm i express knex mysql2 这是 Knex 官方文档地址:Knex.js - SQL query builder. 搭建接口 config.js 新建一个 conf ...
- 乘风破浪,遇见最佳跨平台跨终端框架.Net Core/.Net生态 - 官方扩展集锦(Microsoft.Extensions on Nuget)
什么是Microsoft.Extensions .NET Platform Extensions是一套.Net官方的API集合,提供了一些常用的编程模式和实用工具,例如依赖项注入.日志记录.缓存.Ho ...
- Linux-shell笔记1
一次执行很多命令,可以用:分割每个命令,依次运行所有命令.但是不是进程列表,要用()包围命令才是进程列表.它们有什么差别呢?进程列表是启动了一个子SHELL来执行的.用echo $BASH_SUBSH ...