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即可
|