如果有大量的 Redis 连接,可能会遇到 Cannot assign requested address 错误,这是因为客户端频繁连接 Redis 服务端,每次连接 Redis 服务端都需要使用一个本地端口,如果短时间连接数足够多,会导致大量本地端口TIME_WAIT,然后就没有可用本地端口来连接 Redis 了。
你这个使用统计 time_wait ,一般都是几千上万个
netstat -a|grep TIME_WAIT |wc -l
修改 /etc/sysctl.conf 文件,添加下面内容:
net.ipv4.tcp_timestamps=1
net.ipv4.tcp_tw_reuse = 1
保存生效配置
sudo /sbin/sysctl -p
这个时候再查看time_wait 就少了很多。