【发布时间】:2011-06-09 19:15:08
【问题描述】:
我正在为使用 IO 完成端口 (IOCP) 的 Windows 构建 HTTP 服务器。我有一个压力测试应用程序,它通过 HTTP 请求不断地访问服务器。几秒钟后(变化的、不可预测的时间间隔),我的机器无法打开任何新的 TCP 连接。我知道这一点是因为我的浏览器无法打开任何新连接,服务器只是等待 AcceptEx 调用完成。如果我让压力过程冷静下来,那么几秒钟后一切都会恢复生机。我不认为这是一个积压问题,因为压力源是同步的——它在发出下一个请求之前等待结果。压力器确实并行运行了几个(称为 N 个)线程,但这不会导致 N 个(小型 HTTP)请求的积压。
我使用的是 Windows 7 专业版。周一将在 Windows Server 操作系统上进行测试。是什么导致了这种行为?
【问题讨论】:
标签: windows tcp connection limit