今天使用python多线程请求服务时,出现Cannot assign requested address错误

网上找了下原因,大致上是由于客户端频繁的连服务器,由于每次连接都在很短的时间内结束,导致很多的TIME_WAIT,以至于用光了可用的端 口号,所以新的连接没办法绑定端口,即“Cannot assign requested address”。是客户端的问题不是服务器端的问题。通过netstat,的确看到很多TIME_WAIT状态的连接。

client端频繁建立连接,而端口释放较慢,导致建立新连接时无可用端口。

  1. netstat -a|grep TIME_WAIT
  2. tcp e100069210180.zmf: e100069202104.zmf.tbs:websm TIME_WAIT
  3. tcp e100069210180.zmf: e100069202104.zmf.tbs:websm TIME_WAIT
  4. tcp e100069210180.zmf: e100069202104.zmf.tbs:websm TIME_WAIT
  5. tcp e100069210180.zmf: e100069202104.zmf.tbs:websm TIME_WAIT
  6. tcp e100069210180.zmf: e100069202104.zmf.tbs:websm TIME_WAIT
  7. tcp e100069210180.zmf: e100069202104.zmf.tbs:websm TIME_WAIT
  8. tcp e100069210180.zmf: e100069202104.zmf.tbs:websm TIME_WAIT
  9. tcp e100069210180.zmf: e100069202104.zmf.tbs:websm TIME_WAIT
  10. tcp e100069210180.zmf: e100069202104.zmf.tbs:websm TIME_WAIT
  11. tcp e100069210180.zmf: e100069202104.zmf.tbs:websm TIME_WAIT
  12. tcp e100069210180.zmf: e100069202104.zmf.tbs:websm TIME_WAIT
  13. tcp e100069210180.zmf: e100069202104.zmf.tbs:websm TIME_WAIT
  14. tcp e100069210180.zmf: e100069202104.zmf.tbs:websm TIME_WAIT
  15. tcp e100069210180.zmf: e100069202104.zmf.tbs:websm TIME_WAIT
  16. tcp e100069210180.zmf: e100069202104.zmf.tbs:websm TIME_WAIT
  17. tcp e100069210180.zmf: e100069202104.zmf.tbs:websm TIME_WAIT
  18. tcp e100069210180.zmf: e100069202104.zmf.tbs:websm TIME_WAIT
  19. tcp e100069210180.zmf: e100069202104.zmf.tbs:websm TIME_WAIT
  20. tcp e100069210180.zmf: e100069202104.zmf.tbs:websm TIME_WAIT
  21. tcp e100069210180.zmf: e100069202104.zmf.tbs:websm TIME_WAIT
  22. tcp e100069210180.zmf: e100069202104.zmf.tbs:websm TIME_WAIT
  23. tcp e100069210180.zmf: e100069202104.zmf.tbs:websm TIME_WAIT
  24. tcp e100069210180.zmf: e100069202104.zmf.tbs:websm TIME_WAIT
  25. tcp e100069210180.zmf: e100069202104.zmf.tbs:websm TIME_WAIT
  26. tcp e100069210180.zmf: e100069202104.zmf.tbs:websm TIME_WAIT
  27. tcp e100069210180.zmf: e100069202104.zmf.tbs:websm TIME_WAIT
  28. tcp e100069210180.zmf: e100069202104.zmf.tbs:websm TIME_WAIT
  29. tcp e100069210180.zmf: e100069202104.zmf.tbs:websm TIME_WAIT
  30. tcp e100069210180.zmf: e100069202104.zmf.tbs:websm TIME_WAIT
  31. tcp e100069210180.zmf: e100069202104.zmf.tbs:websm TIME_WAIT
  32. tcp e100069210180.zmf: e100069202104.zmf.tbs:websm TIME_WAIT
  33. tcp e100069210180.zmf: e100069202104.zmf.tbs:websm TIME_WAIT
  34. tcp e100069210180.zmf: e100069202104.zmf.tbs:websm TIME_WAIT
  35. tcp e100069210180.zmf: e100069202104.zmf.tbs:websm TIME_WAIT
  36. tcp e100069210180.zmf: e100069202104.zmf.tbs:websm TIME_WAIT
  37. tcp e100069210180.zmf: e100069202104.zmf.tbs:websm TIME_WAIT
  38. 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出现的原因及解决方案的更多相关文章

  1. 不能绑定到端口号:9194原因:Cannot assign requested address: JVM_Bind

    晚上将老服务器程序从win2008部署在新的云服务器win2012上,其实就是复制过去改改配置,启动时突然报不能绑定到端口号:9194原因:Cannot assign requested addres ...

  2. 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 ...

  3. tomcat java.net.BindException: Cannot assign requested address 解决方法

    今天线上TOMCAT启动时遇到了下比较麻烦的问题,错误如下: 21-Apr-2016 15:14:19.077 SEVERE [main] org.apache.catalina.core.Stand ...

  4. TIME_WAIT引起Cannot assign requested address报错

    1.  问题描述 有时候用redis客户端(php或者java客户端)连接Redis服务器,报错:"Cannot assign requested address." 原因是客户端 ...

  5. Tomcat启动报错:严重: StandardServer.await: create[8005] java.net.BindException: Cannot assign requested address

    org.apache.catalina.core.StandardServer await        SEVERE: StandardServer.await: create[8005]:    ...

  6. Dubbo广播模式下报错:Can't assign requested address解决办法

    原因: 尝试使用Dubbo的multicast模式,发现一运行就报Can't assign requested address的错误,造成这种原因的主要是系统中开启了IPV6协议(比如window7) ...

  7. 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 ...

  8. Tomcat启动异常 java.net.BindException: Cannot assign requested address: JVM_Bind

    从Apache官网下载的tomcat7,在MyEclipse中启动时抛出如下异常: 严重: StandardServer.await: create[localhost:8005]: java.net ...

  9. DataNode启动不成功——java.net.BindException: Port in use: localhost:0 Caused by: java.net.BindException: Cannot assign requested address解决办法

    爱折腾的人总是会出线各种奇怪的问题.记得之前听一位大师讲过,我们不能踩完前进路上的所有坑前进,而应该学会怎样避开前进路上的坑,踩得坑越多,可能你的经验越丰富,但是付出的时间代价可能不是经验能换来的.我 ...

随机推荐

  1. OC 单元测试学习笔记

    UnitTest 编译异常汇总: 问题1 Check dependencies No architectures to compile for (ONLY_ACTIVE_ARCH=YES, activ ...

  2. ruby中tes-unitt数据初始化方法整理

    在用ruby做测试时,很多时候需要一些数据初始化以及事后的数据恢复还原之类的操作,下面整理了这些方法.require "test/unit" class TestAnion < ...

  3. 微信开发-ACCESS TOKEN 过期失效解决方案

    微信开发-ACCESS TOKEN 过期失效解决方案 起因:因为access_token的重要性,开发过微信的都知道,但是他有自己的生命周期,官方解释为:"有效期为7200秒",一 ...

  4. mysql:权限分配

    grant all privileges on *.* to  name@localhost identified by '1'; flush privileges;

  5. 从感知器到SVM

    这篇文章主要是分析感知器和SVM处理分类问题的原理,不涉及求解 感知器: 感知器要解决的是这样的一个二分类问题:给定了一个线性可分的数据集,我们需要找到一个超平面,将该数据集分开.这个超平面的描述如下 ...

  6. [ActionScript 3.0] AS3.0和AS2.0的相互通信

    AS3和AS2之间的通信,最好的方式可能就是LocalConnection了. AS2向AS3发送数据,即AS2调用AS3的函数: as2.0代码(按钮上写的发送信息代码): on (release) ...

  7. Tomcat服务相关

    1. 将Tomcat安装成服务. 找到bin\service.bat文件,往cmd命令行窗口一拉,如果只提示service /remove [../..]那就是Tomcat和java的路径配置没问题. ...

  8. Android SQLiteOpenHelper类的使用

    SQLiteOpenHelper类是Android平台提供的用于SQLite数据库的创建.打开以及版本管理的帮助类.一般需要继承并这个类并实现它的onCreate和onUpgrade方法,在构造方法中 ...

  9. AX 2012 中代码控制用户可查询哪些公司的数据

    关联table:UserDataAreaFilter, parm:dataareaid parm2:userid

  10. Oracle的exp/imp详解

    原文地址:Oracle的exp/imp详解 作者:jxlazzw 备份概述 逻辑备份:备份可分为两类 ,物理备份和逻辑备份 物理备份:该方法实现数据库的完整恢复,但需要极大的外部存储设备,例如磁带库, ...