Redis阻塞

database

可能存在问题

  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. 网络问题,连接拒绝、网络延时、网卡软中断。

以上是 Redis阻塞 的全部内容, 来源链接: utcz.com/z/535074.html

回到顶部