Redis阻塞

原创
08/07 01:10
阅读数 67

可能存在问题

  1. 内在原因:API或数据结构使用不合理、CPU饱和、持久化阻塞等
  2. 外在原因:CPU竞争、内存交换、网络问题等

问题处理:

  1. API或数据结构使用不合理,可能存在慢查询或者大对象:
    • 发现慢查询 slowlog get {n} : 降低低算法度命令、拆分大对象
    • 发现大对象 --bigkeys
  2. CPU饱和,Redis并发量过多导致把CPU使用率跑到100%
    • OPS压力过大时需要通过水平扩展分摊OPS压力
    • OPS不大时可能是因为使用了高算法度命令或过度内存优化,利用info commandstats分析不合理开销的命令
  3. 持久化阻塞,可能为fork阻塞、AOF刷盘阻塞或HugePage写阻塞
  4. CPU竞争
    • Redis为典型的CPU密集型应用,不应与其他CPU密集型服务部署在一起
    • Redis绑定CPU减少上下文切换,提高性能,但持久化时子进程会与父进程同时使用同一CPU且占用CPU达90%以上,导致父子进程CPU激烈竞争
  5. 内存交换,Redis使用的内存被交换到硬盘导致性能大为下降
    • 保证机器内存充足、确保Redis的maxmemory、降低swap优先级
  6. 网络问题,连接拒绝、网络延时、网卡软中断。
展开阅读全文
打赏
0
0 收藏
分享
加载中
更多评论
打赏
0 评论
0 收藏
0
分享
在线直播报名
返回顶部
顶部