(线上系列问题十五)线上Redis连接数达到最大问题
这是一个Redis测试环境挂了, Redis Client连不上,看了一眼日志, 连接数过多然后把Redis配置里连接数上限增加,暂时可以用了,但不一会又出现了如下的日志。
查看了一下Redis连接数上限就是10000, 我们的服务总共才几十个, 说明一定有人没关连接, 于是开始排查.
第一步重启并抢先占一个连接
重启了Redis后, 立即连接到Redis, 查看客户端数量:
info命令能查看关于 Redis 服务器的各种信息和统计数值.
第二步记录全部客户端
连接几分钟后再次查看,此时, 连接已经被全部占满了.
client. list,查所有的连接的客户端,为后面统计。
第三步找出异常IP
使用Linux命令输出连接数前五的IP:
到目前为止, 锁定了172.18.0.50和172.18.0.104两个IP.
至此, 定位到了问题IP和程序,然后通知这两个IP的程序大哥哥就行了。
BTW:当然这儿就是另外一个问题,就是程序一般要用连接池,这样就不会让数据库连接数超出,这样就可以重复利用连接和回收空闲连接,同时设置连接检测避免无效连接无法回收。
评论