redis阻塞

作者: 打伞的Fish | 来源:发表于2018-06-30 09:48 被阅读1次

通过这篇文章你会知晓如下内容:

  • redis阻塞的常规的内在原因和外在原因都有哪些?
  • API不合理引起的阻塞排查方法有哪些?
  • 造成CPU出现饱和的因素 有哪些,如何排查?
  • 持久化过程中哪些方面会引起阻塞,如何排查?

  • API或者数据结构使用不合理

对于高并发的场景我们应该**尽量避免在大对象上执行算法复杂度超过O(n) 的命令

  1. 发现慢查询
    慢查询本身只记录了命令执行时间, 不包括数据网络传输时间和命令排队时间, 因此客户端发生阻塞异常后, 可能不是当前命令缓慢, 而是在等待其他命令执行。 需要重点比对异常和慢查询发生的时间点, 确认是否有慢查询造成的命令阻塞排队
  2. 发现大对象
    通过命令 redis-cli --bigkeys 查询大对象
  • CPU的饱和

CPU饱和,将导致Redis无法处理更多的命令, 严重影响吞吐量和应用方的稳定性
通过命令 redis-cli --stat 查看redis使用情况
通过命令 info commandstats 查看命令的不合理开销时间,同时这个命令要结合各个API的时间复杂度来分析,是否存在一些不合理的使用

  • 持久化阻塞

对于开启了持久化功能的Redis节点, 需要排查是否是持久化导致的阻塞。 持久化引起主线程阻塞的操作主要有: fork阻塞、 AOF刷盘阻塞、HugePage写操作阻塞

  1. fork阻塞
    fork操作发生在RDB和AOF重写时, Redis主线程调用fork操作产生共享内存的子进程, 由子进程完成持久化文件重写工作。 如果fork操作本身耗时过长, 必然会导致主线程的阻塞
    可以执行 info stats 命令获取到latest_fork_usec指标, 表示Redis最近一次fork操作耗时,如果过大要进行优化,针对fork的各个执行过程进行优化
  2. AOF刷盘阻塞
    当我们开启AOF持久化功能时, 文件刷盘的方式一般采用每秒一次, 后台线程每秒对AOF文件做fsync操作。 当硬盘压力过大时, fsync操作需要等待, 直到写入完成。
    查看info persistence统计中的 iaof_delayed_fsync 指标, 每次发生fdatasync阻塞主线程时会累加
    使用iotop命令可以查询各个进程对硬盘的使用情况
    同时可以查阅官网的阻塞问题分析

  • CPU竞争

Redis是典型的CPU密集型应用, 不建议和其他多核CPU密集型服务部署在一起。 当其他进程过度消耗CPU时, 将严重影响Redis吞吐量。 可以通过top、 sar等命令定位到CPU消耗的时间点和具体进程,更多的linux命令监控可以查阅这篇文章

  • 内存交换

内存交换

相关文章

  • redis阻塞

    通过这篇文章你会知晓如下内容: redis阻塞的常规的内在原因和外在原因都有哪些? API不合理引起的阻塞排查方法...

  • Redis阻塞

  • Redis 的RDB和AOF

    RDB (redis database redis数据库快照) 触发命令 SAVE阻塞 BGSAVE另起子线程,不...

  • Redis List

    在 redis 可以把 list 用作 栈、队列、阻塞队列

  • redis 详解系列之四(阻塞)

    redis 阻塞简介 redis是单线程架构,所有读写操作都是在一个线程上进行的,如果某个命令造成了阻塞,哪怕是轻...

  • Redis 如何高效安全删除大 Hash Key

    使用 SCAN 和 Pipeline 命令删除 Redis 的大 Key 删除操作会导致 Redis 线程阻塞,网...

  • redis阻塞问题

    以下是学习笔记 出现cpu过高的原因有:1、连接数过多,通过info clients查看2、慢查询,因为redis...

  • redis阻塞原因

    1.找慢查询语句 slowlog get 10 #其中10表示获取多少次慢查询语句 1) (integer) 3 ...

  • Redis学习--阻塞

    API或数据结构使用不合理 慢查询查询慢查询日记,发现慢查询.1)修改为低算法度的命令,如hgetall改为hmg...

  • Redis学习之旅~原理篇

    内容依旧来自 核心原理 线程IO模型 单线程非阻塞IO redis是单线程模型。redis的...

网友评论

    本文标题:redis阻塞

    本文链接:https://www.haomeiwen.com/subject/oreoyftx.html