关于redis:Redis超时阻塞问题排查

6次阅读

共计 516 个字符,预计需要花费 2 分钟才能阅读完成。

原理剖析

从原理层面, 咱们能够将此类问题分为内因和外因

内因

长久化带来的阻塞问题 (AOF 重写和生成 RDB)

redis 在做 AOF 或生成 RDB 的时候, 须要 fork 操作创立子过程,fork 过程, 尽管不会间接拷贝父过程的物理内存空间, 但回复制父过程的内存页表.
从教训来说, 如果 redis 有 10G 内存, 那么复制大略 20MB 的内存页表

CPU 饱和

如果 redis 的 cpu 跑到近 100%, 是比拟危险的, 能够应用 top 命令查看, 或者应用 redis-cli –stat 命令查看

慢查问和大 key

应用 keys* 或者 hgetall 等命令, 工夫复杂度是 O(n)
大 key 的读写和写入须要更大内存空间, 容易阻塞

外因

应用 SWAP 内存替换

如果操作系统的内存不够,将一部分内存数据换出到磁盘,那么 Redis 的拜访无疑会受到影响,因为内存和磁盘的访问速度,差了好几个数量级。
因而,应用 Redis 的机器上,尽量敞开 swap,并设置 Redis 的 maxmemory,防止 Redis 内存的无限度上涨。

网络问题

这个就十分常见了,网络抖动,网络闪断,网络提早,网卡软中断等。这里给出查看网络延时的方法,通常状况下,能够应用 redis-cli –latency 命令来查看 Redis 的提早状况。

正文完
 0