1、问题现象

java程序在windows server 2008 R2 弹窗崩溃

2、分析日志

多个模块报错关键信息:No buffer space available (maximum connections reached?): bind

3、分析原因

问题可能原因为
(1)windows server 2008 R2 系统bug

微软官方链接

(2)连接数过多
系统并发过大,连接数过多,部分socket连接无法释放关闭,而持续请求又导致无法释放的socket连接不断积压,最终导致No buffer space available。
当系统并发过大,Client-Server连接数过多,Server端会在1-4分钟之内积累大量处于TIME_WAIT状态的无法释放的socket连接,导致服务器效率急剧下降,甚至耗完服务器的所有资源,最终导致No buffer space available (maximum connections reached?): connect

4、解决方案

针对第一种可能的原因下载补丁包,以管理员身份安装重启即可。
补丁链接

针对对二种情况修改注册表(可参考截图)

\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters

添加一个DWORD类型的值TcpTimedWaitDelay,值可以根据实际情况配置。
可改为30(十进制)

\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\TCPIP\Parameters

添加一个DWORD类型的值MaxUserPort ,值可以根据实际情况配置。
比如65530(5000-65534)

新建成功后双击输入值,选择十进制点击ok即可

更多推荐

No buffer space available (maximum connections reached?): bind