Redis读性能慢问题排查和调优

时间:2024-10-30 22:06:46

Redis读性能慢问题排查和调优

  • 1. 确认Redis是否真的变慢
    • 1.1. 基准性能测试
    • 1.2. 查看slowlog慢日志
  • 2. Redis本身导致Redis变慢原因
    • 2.1. 使用复杂度过高的命令
    • 2.2. 操作bigkey(value很大)
    • 2.3. 集中过期
    • 2.4. 开启AOF
    • 2.5. fork耗时严重
    • 2.6. 碎片整理
    • 2.7. 绑定CPU
  • 3. 操作系统原因导致Redis变慢
    • 3.1. 实例内存达到上限
    • 3.2. 开启内存大页
    • 3.3. 使用Swap
    • 3.4. 网络带宽过载
    • 3.5. 其他原因

https://heapdump.cn/article/3492222
https://www.cnblogs.com/hzzjj/p/16171854.html
http://kaito-kidd.com/2021/01/23/redis-slow-latency-analysis/
https://blog.****.net/weixin_42128977/article/details/127622146
https://cloud.tencent.com/developer/article/1683803

   Redis速度是很快的,性能很高。但是Redis有时候会存在执行很慢、性能很差的情况。Redis是单线程操作,如果在Redis中执行耗时较长的操作,就会阻塞其他请求了。
   Redis客户端执行一条命令,分为4部分:发送命令=>命令排队=> 命令执行=> 返回结果

1. 确认Redis是否真的变慢

   若发现你的业务服务API响应延迟变长,首先需要排查服务内部,究竟是哪个环节拖慢了整个服务。比较高效的做法是,在服务内部集成链路追踪,也就是在服务访问外部依赖的出入口,记录下每次请求外部依赖的响应延时。若发现确实是操作 Redis 的这条链路耗时变长了,那么此刻你需要把焦点关注在业务服务到 Redis 这条链路上。
   从你的业务服务到 Redis 这条链路变慢的原