Redis学习五(Redis 阻塞的原因及其排查方向). (2)

redis client buffer 的配置参数为 "client-output-buffer-limit",默认值为:

127.0.0.1:6379> CONFIG GET "*output*" 1) "client-output-buffer-limit" 2) "normal 0 0 0 slave 0 0 0 pubsub 0 0 0"

class :客户端种类,normal、slave、pubsub

normal:普通的客户端

slave: 从库的复制客户端

pub/sub: 发布与订阅的客户端

hard limit: 缓冲区大小的硬性限制。

soft limit: 缓冲去大小的软性限制。

soft seconds: 缓冲区大小达到了(超过)soft limit 值的持续时间。

client-output-buffer-limit 参数限制分配的缓冲区的大小,防止内存无节制的分配。参数的默认值都为 0,意思是不做任何限制。

redis server 触发保护机制主要有两种情况:

client buffer 的大小达到了 soft limit 并持续了 soft seconds 时间,将立即断开和客户端的连接。

client buffer 的大小达到了 hard limit,server 也会立即断开和客户端的连接。

八、网络问题 1. 连接拒绝

网络闪断:一般在网络割接或带宽耗尽的情况;

redis 连接拒绝:连接数大于 maxclients 时拒绝新的连接进入,可以关注 info stats 的 rejected_connections 指标;

连接溢出:

进程限制:进程可打开最大文件数控制 —— ulimit -n,通常 1024,大量连接的 redis 需要增大该值;

backlog 队列溢出:系统对于特定端口 tcp 连接使用 backlog 队列保存,redis 默认 511,系统 backlog 默认 128,线上可使用 cron 定时执行 netstat -s | grep overflowed 统计;

2. 网络延迟

测量机器之间的网络延迟

redis-cli -h {ip} -p {port} –latency
redis-cli -h {ip} -p {port} –latency-history 默认15秒完成一行统计,-i控制采样时间
redis-cli -h {ip} -p {port} –latency-dist 统计图展示,每1秒采样一次

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wsssfx.html