关于 No buffer space available (maximum connections reached?): connect 的处理
一、问题:
hudson一个应用打包部署一直不成功,检查报错

检查项目的JOB配置,开始以为是SVN的问题,但是重启SVN后问题一直存在
二、分析:
TCP协议中,关闭TCP连接的是Server端(当然,关闭都可以由任意一方发起),当Server端发起关闭连接请求时,向Client端发送一个FIN报文,Client端收到FIN报文时,很可能还有数据需要发送,所以并不会立即关闭SOCKET,所以先回复一个ACK报文,告诉Server端,“你发的FIN报文我收到了”。当Client端的所有报文都发送完毕之后,Client端向Server端发送一个FIN报文,此时Client端进入关闭状态,不在发送数据。
Server端收到FIN报文后,就知道可以关闭连接了,但是网络是不可靠的,Client端并不知道Server端要关闭,所以Server端发送ACK后进入TIME_WAIT状态,如果Client端没有收到ACK则Server段可以重新发送。Client端收到ACK后,就知道可以断开连接了。Server端等待了2MSL(Max Segment Lifetime,最大报文生存时间)后依然没有收到回复,则证明Client端已正常断开,此时,Server端也可以断开连接了。2MSL的TIME_WAIT等待时间就是由此而来
三、解决:
1.查了资料发现是进程虽然结束了,但是有很多TIME_WAIT状态的连接未释放

2 查看hudson所在的windows服务器上
①IME_WAIT的自动关闭时间(默认4分钟)
②windows下的大端口服务(虽然系统总共可使用的Ports有65536个,但从本机连到外部网路(Outbound Connections)的连线埠最多只会使用到5000个而已【此为系统默认值】)
操作如下:

3.重启
四、结论
由于大量的TIME_WAIT连接未被释放,导致占用的端口资源一直未被回收,出现了缓冲区空间不足的问题,应用也总是自动断线。
附:LINUX更改socket连接数与TIMEOUT时间
修改系统socket最大连接数
在文件/etc/security/limits.conf最后加入下面两行:
* soft nofile 32768
* hard nofile 32768
缩小2MSL的时长、允许重用处于TIME_WAIT状态的TCP连接、快速回收处于 TIME_WAIT状态的TCP连接
修改/etc/sysctl.conf,添加如下几行:
#改系統默认的TIMEOUT时间
net.ipv4.tcp_fin_timeout=2
#启重用,允许将TIME_WAIT sockets重新用于新的TCP连接 默认为0表示关闭
net.ipv4.tcp_tw_reuse=1
#开启TCP连接中TIME_WAIT sockets的快速回收 默认为0 表示关闭
net.ipv4.tcp_tw_recycle=1
关于 No buffer space available (maximum connections reached?): connect 的处理的更多相关文章
- IDEA 服务启动报:No buffer space available (maximum connections reached): connect的解决方案。
错误提示:严重: Error starting endpointjava.io.IOException: Unable to establish loopback connectionat sun.n ...
- 连接db2数据库出现No buffer space available (maximum connections reached?)
Caused by: javax.naming.NamingException: [jcc][t4][2043][11550][3.57.82] 异常 java.net.SocketException ...
- error:No buffer space available (maximum connections reached
2015-02-02 17:49:09,035 ERROR basic.DBManager - Failded to establish the connection. com.mysql.jdbc. ...
- java.net.SocketException: No buffer space available (maximum connections reached?): JVM_Bind
1. 启动注册表编辑器. HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Services/Tcpip/Parameters 2. 新建 值名称:MaxUser ...
- Windows 7下解决: java.net.SocketException: No buffer space available (maximum connections reached?)
查了一大堆网上的资料全都没用,Google得知,是Windows 7 的socket泄漏 : https://supportkb.riverbed.com/support/index?page=con ...
- socket-详细分析No buffer space available
关键词:socket,tcp三次握手,tcp四次握手,2MSL最大报文生存时间,LVS,负载均衡 新年上班第一天,突然遇到一个socket连接No buffer space available的问题, ...
- java.net.SocketException: No buffer space available
https 访问url在调用量不大的情况下 java.net.SocketException: No buffer space available (maximum connections reach ...
- socket-详细分析No buffer space available(转)
新年上班第一天,突然遇到一个socket连接No buffer space available的问题,导致接口大面积调用(webservice,httpclient)失败的问题,重启服务器后又恢复了正 ...
- java socket / No buffer space available
s https://www.cnblogs.com/yiwangzhibujian/p/7107785.html Socket用在哪呢,主要用在进程间,网络间通信. https://www.cnblo ...
随机推荐
- javascript select标签的操作
用原生的方法对select标签的增删操作 1.选中某一个option,一般采用 option[i].selected = true 2.添加option首先需要创建一个option的节点,然后插入到 ...
- 高级js--(面向对象js,arguments,闭包,自调)
1. Arguments对象 l检测参数个数 1.在函数代码中,使用特殊对象 arguments,开发者无需明确指出参数名,就能访问它们. function howManyArgs() { al ...
- Appium-We wanted {"required":["value"]} and you sent ["text","sessionId","id","value"]
APK 链接:https://pan.baidu.com/s/17oeTM1qA0QjPBqLh6pS0Yg 提取码:s9ru # coding:utf-8from appium import web ...
- js 在光标位置插入内容
原文:https://blog.csdn.net/smartsmile2012/article/details/53642082 createDocumentFragment()用法: https:/ ...
- RabbitMq (1)
1.传递模型 点对点模型(PTP) 发布-订阅模型 -------------------------------------------------------------------------- ...
- Centos 7 安装 sphinx2.2 (转)
一.首先到Sphinx官网找到下载地址:http://sphinxsearch.com/downloads/release/如果你比较懒,好吧:http://sphinxsearch.com/file ...
- ActiveMQ 学习
链接: http://www.cnblogs.com/zhuxiaojie/p/5564187.html#autoid-1-0-0
- html表单中get与post之间的区别
当用户在 HTML 表单 (HTML Form) 中输入信息并提交之后,有两种方法将信息从浏览器传送到 Web 服务器 (Web Server). 一种方法是通过 URL,另外一种是在 HTTP Re ...
- Java学习路线(转)
原文:http://www.hollischuang.com/archives/489 一.基础篇 1.1 JVM 1.1.1. Java内存模型,Java内存管理,Java堆和栈,垃圾回收 http ...
- Delphi FrieDAC 大数据处理
Delphi FrieDAC 大数据处理 大数据处理, 要用到Array DML 插入数据 先要设置插入的数据量 FQuery1.Params.ArraySize := 1000; for index ...