redis-连接数占满解决

文章讲述了作者在排查Redis数据库无法连接的问题时,发现不是连接数限制,而是某个客户端由于程序bug导致无限死循环创建连接,占用了大部分连接资源。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

作者

马文斌

时间

2023-12-12

标签

redis 连接风暴 连接数占满

背景

近期有redis 数据库连不上,起初以为是redis的连接数满了,排查到后面发现问题不简单啊,下面看看具体的排查过程。

image-20231226084808080

image-20231226084603867

连不上的原有有哪些

  1. 密码不对

  2. 网络不好,丢包

  3. 原来的连接没有释放

  4. 程序有bug,一直循环创建连接

  5. 连接数已达上限,新连接挤不进去

  6. .....

查目前连接数

查redis的目前连接数

127.0.0.1:6379> info clients
# Clients
connected_clients:9993
client_longest_output_list:0
client_biggest_input_buf:0
blocked_clients:1
​

查redis哨兵的连接数

redis-cli -h 192.168.63.114 -a xxxx -p 26579  CLIENT LIST |grep -c addr
9994

redis 默认最大连接数是1w个,那基本达到阈值

设置timeout

config set timeout 900
为了防止连接数不释放,设置timeout=900 秒,但是经过观察,连接数还是一直占满

统计ip来源

统计端口的来源ip:
ss -tnp | grep 26579 | awk '{print $5}' | awk -F : '{print $1}' | sort | uniq -c | sort -nr
​
统计出 192.168.1.1 9900

总结

统计出192.168.1.1 这个客户端的连接有9900个,居然占了99.9%的连接数,那基本定位是这个ip的客户端有问题了,找开发查这个ip的客户端配置,原来是程序有bug,一直循环创建连接。所以最后的问题点不是网络原因,也不是连接数不够,而是程序无限死循环的创建连接,最终把连接数占满。

作者公众号:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

qq_26009505

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值