工作,学习,生活,这里将会有一些记录. 备用域名:http://meisw.wdlinux.cn 注册 | 登陆

很多TIME_WAIT连接导致Cannot assign requested address的解决办法

客户端connect服务器,执行一定时间后,接口返回-99的错误

查看错误信息 OS error code  99:  Cannot assign requested address

猜想端口被用光的原因,网络搜索得到一个解释:客户端频繁的连服务器,由于每次连接都在很短的时间内结束,导致很多的TIME_WAIT,以至于用光了可用的端口号,所以新的连接没办法绑定端口,即“Cannot assign requested address”

通过netstat,的确看到很多TIME_WAIT状态的连接

因为是调用API,所以无法对连接进行opt设置,只能通过设置系统配置得以解决

解决办法:

执行命令修改如下2个内核参数   
sysctl -w net.ipv4.tcp_timestamps=1  开启对于TCP时间戳的支持,若该项设置为0,则下面一项设置不起作用

sysctl -w net.ipv4.tcp_tw_recycle=1  表示开启TCP连接中TIME-WAIT sockets的快速回收

« 上一篇 | 下一篇 »

Trackbacks

点击获得Trackback地址,Encode: UTF-8

发表评论

评论内容 (必填):