Redis 忽然变慢了如何排查并解决?

Redis作为重要的缓存组件,其性能直接影响业务系统。当Redis延迟增加可能导致系统故障。本文通过实例分析了Redis变慢的原因,如网络延迟、慢指令、Fork生成RDB、内存大页、swap等问题,并提供了相应的解决方案,如慢日志监控、Latency Monitoring、优化指令使用、调整内存策略和处理bigkey等。
摘要由CSDN通过智能技术生成

Python微信订餐小程序课程视频

https://edu.csdn.net/course/detail/36074

Python实战量化交易理财系统

https://edu.csdn.net/course/detail/35475
Redis 通常是我们业务系统中一个重要的组件,比如:缓存、账号登录信息、排行榜等。

一旦 Redis 请求延迟增加,可能就会导致业务系统“雪崩”。

我在单身红娘婚恋类型互联网公司工作,在双十一推出下单就送女朋友的活动。

谁曾想,凌晨 12 点之后,用户量暴增,出现了一个技术故障,用户无法下单,当时老大火冒三丈!

经过查找发现 RedisCould not get a resource from the pool

获取不到连接资源,并且集群中的单台 Redis 连接量很高。

大量的流量没了 Redis 的缓存响应,直接打到了 MySQL,最后数据库也宕机了……

于是各种更改最大连接数、连接等待数,虽然报错信息频率有所缓解,但还是持续报错

后来经过线下测试,发现存放 Redis 中的字符数据很大,平均 1s 返回数据

可以发现,一旦 Redis 延迟过高,会引发各种问题。

今天「码哥」跟大家一起来分析下如何确定 Redis 有性能问题和解决方案。

目录* Redis 性能出问题了么?
+ 延迟基线测量
+ 慢指令监控
- 慢日志功能
- Latency Monitoring

Redis 性能出问题了么?

最大延迟是客户端发出命令到客户端收到命令的响应的时间,正常情况下 Redis 处理的时间极短,在微秒级别。

当 Redis 出现性能波动的时候,比如达到几秒到十几秒,这个很明显我们可以认定 Redis 性能变慢了。

有的硬件配置比较高,当延迟 0.6ms,我们可能就认定变慢了。硬件比较差的可能 3 ms 我们才认为出现问题。

那我们该如何定义 Redis 真的变慢了呢?
所以,我们需要对当前环境的 Redis 基线性能做测量,也就是在一个系统在低压力、无干扰情况下的基本性能。

当你发现 Redis 运行时时的延迟是基线性能的 2 倍以上,就可以判定 Redis 性能变慢了。

延迟基线测量

redis-cli 命令提供了–intrinsic-latency 选项,用来监测和统计测试期间内的最大延迟(以毫秒为单位),这个延迟可以作为 Redis 的基

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值