美文网首页
Redis连接问题:dial tcp [IP]:PORT: co

Redis连接问题:dial tcp [IP]:PORT: co

作者: HollowKnight | 来源:发表于2018-12-02 17:03 被阅读0次

    背景

    有一次发现线上业务突然告警,有不少接口失败率暴增。看了下错误码和日志,提示这个dial tcp [IP]:PORT: connect: cannot assign requested address,大概就可以确定是redis连接问题。


    原因

    在网上查了下,发现这个是Linux上分配的客户端连接端口用尽,无法建立socket连接所致,虽然socket已经关闭了,但端口不是立刻释放的。项目中访问redis用了连接池,但线上的空闲最大连接数有问题,设置太小了。但线上访问请求量不低,就会导致每时每刻有不少redis连接,但又无法放回连接池内被释放掉,但释放又有时间延迟,然后下一秒又有继续大量请求,这样随着时间的增长,机器的可用端口就会出现用尽的情况


    解决

    直接提高连接池的空闲最大连接数。
    也可以考虑修改Linux端口关闭的延迟时间,不过这不是本质原因。

    欢迎关注个人公众号: 极客星语,定时更新技术文章!


    极客星语

    相关文章

      网友评论

          本文标题:Redis连接问题:dial tcp [IP]:PORT: co

          本文链接:https://www.haomeiwen.com/subject/bpujcqtx.html