来源:89099733
大概原因是短时间内new socket操作很多,而socket.close()操作并不能立即释放绑定的端口,而是把端口设置为TIME_WAIT状态,过段时间(默认240s)才释放,(用netstat -na可以看到),最后系统资源耗尽(windows上是耗尽了pool of ephemeral ports ,这段区间在1024-5000之间; )
避免出现这一问题的方法有两个:
1、一个是调高你的web服务器的最大连接线程数调到1024,2048都还凑合
2、另一个是修改运行web服务器的机器的操作系统网络配置把time wait的时间调低一些