Windows временно закрывает мой стек TCP, когда я тестирую мой HTTP-сервер - PullRequest
1 голос
/ 16 января 2011

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

Я на Windows 7 Pro. Будет тестирование на ОС Windows Server в понедельник. Что вызывает такое поведение?

Ответы [ 2 ]

3 голосов
/ 16 января 2011

У вас заканчиваются порты TCP из-за того, что очень большое их количество остается в состоянии TIMED_WAIT?

0 голосов
/ 16 января 2011

эфемерные порты Google Windows.

...