线上 redis 的 cpu 高升如何排查

危害

Redis常常用于高并发场景,作为缓存来进行使用。如果说Redis的cpu因为一些原因升高,会影响到我们的整体吞吐量及应用响应速度,导致请求阻塞,进而导致我们整体服务应用没有响应。
如果持续升高,特别极端的情况下,redis会直接挂掉,缓存不可用,导致数据穿透到数据库层面,造成一系列的雪崩反应。
那么我们在监控redis的时候,有两个重要的指标,平均的cpu使用率以及峰值使用率。

监控方式

可以使用metricbeat+filebeat+monitori进行监控。
也可以通过redis proxy 进行代理监控。

应急方案

  1. 如果是刚上线导致的,有降级方案就降级,没有就回滚,
  2. 切换主从节点顶一下

排查思路

根据监控工具判断 CPU 升高是瞬时性的还是周期性的,甚至是持续性的
● 瞬时性:则排查该时刻的命令
● 周期性:排除定时任务
● 持续性:比较复杂,大量命令排除

1. 找出 CPU 高时段的高消耗命令

a. 利用上述工具,记录 redis 命令执行日志
b. 拿到命令后,分析哪些命令是高消耗的,时间复杂度高的例如 keys *

2. 找出 redis 执行命令的慢日志

a. 慢日志的两个参数
ⅰ. slow-log-slower-than

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值