redis慢查询导致的线上事故

背景

接入流量涨了将近一倍时,用户就反馈系统的反应很慢,发起一个请求后,要很久才能实际看到响应的结果。

排查和分析过程

1.因为用户是在浏览器页面上操作的,所以做的第一件事就是打开网页和开发者工具,然后模拟用户操作发起请求。发现这个过程有些操作的响应是很快的,而有些不是,初步排除是服务出了问题(内存溢出,死循环等),然后根据请求的响应时间确定出现延时的接口。
2.确定了接口后,查看接口的实现,发现全部都是基于redis的读操作。初步判断是redis出了问题。马上登上redis服务器,查看redis进程的各项指标(cpu使用率,内存使用率等情况),发现基本基本上都是正常水平,查看redis的异常日志,发现没有什么异常信息。
3.经过对一系列常见的监控指标排查后没有得到异常信息,于是怀疑是否连接数已满。用netstat指令统计客户端连接,发现客户端连接服务器的连接数并没有满。
4.经过一番排查没有头绪的时候,DBA告知redis有很多慢查询,而且查询时间基本上都超过了一秒。结合redis单线程的特性分析,极大可能是这个原因,于是马上修改代码逻辑,将慢查询语句逐个消除。修改完毕后上线观察,用户那边果然没有再反馈反应慢的问题了,问题解决。

思考与总结

redis作为单线程组件的代表之一,在使用时一定要紧密结合它的指令执行单线程的特性,避免在生产上使用一些耗时高的慢查询和一些大value,否则redis的查询操作很有可能就会成为整个系统的瓶颈,那就是基于内存操作的redis的响应竟然会很慢很慢很慢~

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值