Cannot assign requested address出现的原因及解决方案
今天使用python多线程请求服务时,出现Cannot assign requested address错误
网上找了下原因,大致上是由于客户端频繁的连服务器,由于每次连接都在很短的时间内结束,导致很多的TIME_WAIT,以至于用光了可用的端 口号,所以新的连接没办法绑定端口,即“Cannot assign requested address”。是客户端的问题不是服务器端的问题。通过netstat,的确看到很多TIME_WAIT状态的连接。
client端频繁建立连接,而端口释放较慢,导致建立新连接时无可用端口。
netstat -a|grep TIME_WAIT
tcp e100069210180.zmf: e100069202104.zmf.tbs:websm TIME_WAIT
tcp e100069210180.zmf: e100069202104.zmf.tbs:websm TIME_WAIT
tcp e100069210180.zmf: e100069202104.zmf.tbs:websm TIME_WAIT
tcp e100069210180.zmf: e100069202104.zmf.tbs:websm TIME_WAIT
tcp e100069210180.zmf: e100069202104.zmf.tbs:websm TIME_WAIT
tcp e100069210180.zmf: e100069202104.zmf.tbs:websm TIME_WAIT
tcp e100069210180.zmf: e100069202104.zmf.tbs:websm TIME_WAIT
tcp e100069210180.zmf: e100069202104.zmf.tbs:websm TIME_WAIT
tcp e100069210180.zmf: e100069202104.zmf.tbs:websm TIME_WAIT
tcp e100069210180.zmf: e100069202104.zmf.tbs:websm TIME_WAIT
tcp e100069210180.zmf: e100069202104.zmf.tbs:websm TIME_WAIT
tcp e100069210180.zmf: e100069202104.zmf.tbs:websm TIME_WAIT
tcp e100069210180.zmf: e100069202104.zmf.tbs:websm TIME_WAIT
tcp e100069210180.zmf: e100069202104.zmf.tbs:websm TIME_WAIT
tcp e100069210180.zmf: e100069202104.zmf.tbs:websm TIME_WAIT
tcp e100069210180.zmf: e100069202104.zmf.tbs:websm TIME_WAIT
tcp e100069210180.zmf: e100069202104.zmf.tbs:websm TIME_WAIT
tcp e100069210180.zmf: e100069202104.zmf.tbs:websm TIME_WAIT
tcp e100069210180.zmf: e100069202104.zmf.tbs:websm TIME_WAIT
tcp e100069210180.zmf: e100069202104.zmf.tbs:websm TIME_WAIT
tcp e100069210180.zmf: e100069202104.zmf.tbs:websm TIME_WAIT
tcp e100069210180.zmf: e100069202104.zmf.tbs:websm TIME_WAIT
tcp e100069210180.zmf: e100069202104.zmf.tbs:websm TIME_WAIT
tcp e100069210180.zmf: e100069202104.zmf.tbs:websm TIME_WAIT
tcp e100069210180.zmf: e100069202104.zmf.tbs:websm TIME_WAIT
tcp e100069210180.zmf: e100069202104.zmf.tbs:websm TIME_WAIT
tcp e100069210180.zmf: e100069202104.zmf.tbs:websm TIME_WAIT
tcp e100069210180.zmf: e100069202104.zmf.tbs:websm TIME_WAIT
tcp e100069210180.zmf: e100069202104.zmf.tbs:websm TIME_WAIT
tcp e100069210180.zmf: e100069202104.zmf.tbs:websm TIME_WAIT
tcp e100069210180.zmf: e100069202104.zmf.tbs:websm TIME_WAIT
tcp e100069210180.zmf: e100069202104.zmf.tbs:websm TIME_WAIT
tcp e100069210180.zmf: e100069202104.zmf.tbs:websm TIME_WAIT
tcp e100069210180.zmf: e100069202104.zmf.tbs:websm TIME_WAIT
tcp e100069210180.zmf: e100069202104.zmf.tbs:websm TIME_WAIT
tcp e100069210180.zmf: e100069202104.zmf.tbs:websm TIME_WAIT
tcp e100069210180.zmf: e100069202104.zmf.tbs:websm TIME_WAIT
解决办法
执行命令修改如下2个内核参数 (需要root权限)
sysctl -w net.ipv4.tcp_timestamps=1 开启对于TCP时间戳的支持,若该项设置为0,则下面一项设置不起作用
sysctl -w net.ipv4.tcp_tw_recycle=1 表示开启TCP连接中TIME-WAIT sockets的快速回收
Cannot assign requested address出现的原因及解决方案的更多相关文章
- 不能绑定到端口号:9194原因:Cannot assign requested address: JVM_Bind
晚上将老服务器程序从win2008部署在新的云服务器win2012上,其实就是复制过去改改配置,启动时突然报不能绑定到端口号:9194原因:Cannot assign requested addres ...
- com.sun.xml.internal.ws.server.ServerRtException: Server Runtime Error: java.net.BindException: Cannot assign requested address: bind
在发布 web service 时报错: Endpoint.publish(publishAddress, hl7MessageReveiver); com.sun.xml.internal.ws.s ...
- tomcat java.net.BindException: Cannot assign requested address 解决方法
今天线上TOMCAT启动时遇到了下比较麻烦的问题,错误如下: 21-Apr-2016 15:14:19.077 SEVERE [main] org.apache.catalina.core.Stand ...
- TIME_WAIT引起Cannot assign requested address报错
1. 问题描述 有时候用redis客户端(php或者java客户端)连接Redis服务器,报错:"Cannot assign requested address." 原因是客户端 ...
- Tomcat启动报错:严重: StandardServer.await: create[8005] java.net.BindException: Cannot assign requested address
org.apache.catalina.core.StandardServer await SEVERE: StandardServer.await: create[8005]: ...
- Dubbo广播模式下报错:Can't assign requested address解决办法
原因: 尝试使用Dubbo的multicast模式,发现一运行就报Can't assign requested address的错误,造成这种原因的主要是系统中开启了IPV6协议(比如window7) ...
- kafka.common.KafkaException: Socket server failed to bind to hdp1:9092: Cannot assign requested address.
ERROR [KafkaServer id=1] Fatal error during KafkaServer startup. Prepare to shutdown (kafka.server.K ...
- Tomcat启动异常 java.net.BindException: Cannot assign requested address: JVM_Bind
从Apache官网下载的tomcat7,在MyEclipse中启动时抛出如下异常: 严重: StandardServer.await: create[localhost:8005]: java.net ...
- DataNode启动不成功——java.net.BindException: Port in use: localhost:0 Caused by: java.net.BindException: Cannot assign requested address解决办法
爱折腾的人总是会出线各种奇怪的问题.记得之前听一位大师讲过,我们不能踩完前进路上的所有坑前进,而应该学会怎样避开前进路上的坑,踩得坑越多,可能你的经验越丰富,但是付出的时间代价可能不是经验能换来的.我 ...
随机推荐
- CentOS 6.5下配置iSCSI网络存储
一.简介 iSCSI(internet SCSI)技术由IBM公司研究开发,是一个供硬件设备使用的.可以在IP协议的上层运行的SCSI指令集,这种指令集合可以实现在IP网络上运行 SCSI协议,使其能 ...
- ThoughtWorks.QRCode源码
http://files.cnblogs.com/files/xiaoyu369/ThoughtWorks.QRCode.rar
- 北京全景视频外包公司:长年承接VR全景视频外包
北京动点飞扬软件,从事外包业务五年,长年承接全景VR视频,全景普通视频外包. 以下是全景VR视频案例(可操作,人不动景物不动,人移动,景物跟随) 欢迎联系我们QQ:372900288 TEL:1391 ...
- pc wap 判断浏览器ua属性
var ua = navigator.userAgent.toLowerCase(); var Android = String(ua.match(/android/i)) == "andr ...
- 【学】jQuery的源码思路5——增加class的操作
hasClass, addClass, removeClass, toggleClass //addClass,加入class会对元素,利用正则,将class中多余的空格去掉 zQuery.proto ...
- 根据 MySQL 状态优化 ---- 4. 临时表
查看 MySQL 服务器运行的各种状态值: mysql> show global status: 4. 临时表 查看设置: mysql> show variables where Vari ...
- upgrade to ubuntu14.04, ibus input
升级后ibus拼音输入很奇怪,可能和其他输入法产生混淆.解决很简单,只要打开终端输入 ibus-daemon -drx 不用重启或者登出问题便解决.
- 慕课网-Java入门第一季-7-4 编程练习
来源:http://www.imooc.com/code/1634 小伙伴们,请根据所学知识,参考注释,在代码编辑器中将代码补充完整.编写一个 Java 程序,实现输出学生年龄的最大值 要求: 1. ...
- JS-安全检测JavaScript基本数据类型和内置对象的方法
前言:在前端开发中经常会需要用到检测变量数据类型的需求,比如:判断一个变量是否为undefined或者null来进行下一步的操作,今天在阅读“编写高质量代码-改善JavaScript程序的188个建议 ...
- Oracle的登录方式
1.本地登录 (1).用户名,密码登录: user:xxx password:xxx (2).指定用户名,密码登录: c:\>sqlplus sys/qac123QAC as sysdba; ...