(线上系列问题十五)线上Redis连接数达到最大问题

办法总比困难多

共 509字,需浏览 2分钟

 ·

2021-01-05 07:23

这是一个Redis测试环境挂了, Redis Client连不上,看了一眼日志, 连接数过多然后把Redis配置里连接数上限增加,暂时可以用了,但不一会又出现了如下的日志。

e5f10394225dfcfe1bb7df3ae95d8464.webp


查看了一下Redis连接数上限就是10000, 我们的服务总共才几十个, 说明一定有人没关连接, 于是开始排查.

第一步重启并抢先占一个连接

重启了Redis, 立即连接到Redis, 查看客户端数量

7cbd346c134b148c30906c1de92e9f43.webp

info命令能查看关于 Redis 服务器的各种信息和统计数值.

第二步记录全部客户端

连接几分钟后再次查看,此时连接已经被全部占满了.

82d3f7f87ebafb1381a151771cf21a83.webp

client. list,查所有的连接的客户端,为后面统计。

c2671acfee704cef4a094614ba23c804.webp

8fdecdbe73d0ef29038f427ac94d2f6a.webp




第三步找出异常IP

使用Linux命令输出连接数前五的IP:

941fe03a1b1958ed246bf39801022ce0.webp


到目前为止, 锁定了172.18.0.50172.18.0.104两个IP. 

至此, 定位到了问题IP和程序,然后通知这两个IP的程序大哥哥就行了。

BTW:当然这儿就是另外一个问题,就是程序一般要用连接池,这样就不会让数据库连接数超出,这样就可以重复利用连接和回收空闲连接,同时设置连接检测避免无效连接无法回收




浏览 58
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报