Я создаю HTTP-сервер для Windows, который использует порты завершения ввода-вывода (IOCP). У меня есть приложение для стресс-теста, которое постоянно отправляет на сервер HTTP-запросы. Через пару секунд (изменяющийся, непредсказуемый интервал) моя машина не может открыть какие-либо новые TCP-соединения. Я знаю это, потому что мой браузер не может открыть какие-либо новые подключения, и сервер просто ожидает завершения вызова AcceptEx. Если я успокоюсь от стресса, то через несколько секунд все снова оживет. Я не думаю, что это проблема с отставанием, потому что стресер синхронен - он ждет результата, прежде чем отправить следующий запрос. Stresser выполняет пару (назовем это N) потоков параллельно, но это не может вызвать больше, чем отставание от N (маленьких HTTP) запросов.
Я на Windows 7 Pro. Будет тестирование на ОС Windows Server в понедельник. Что вызывает такое поведение?