Я писал длинный опрос в WCF. Я нахожусь в точке нагрузочного тестирования, и у меня возникает проблема, которая, когда я получаю 5000 выдающихся запросов, начинаю получать:
The HTTP service located at (my service) is too busy.
Я реализовал это как службу WCF AsyncPattern, и количество потребляемых потоков рабочего /IO остается очень низким (как и должно быть). Количество ручек хорошо выглядит и т.д. Я думаю, что нахожусь в одном из пределов анти-DOS и просто не могу его найти. Вот некоторые из вещей, которые я сделал:
Я изменил реестр, так что MaxConcurrentRequestsPerCPU не является проблемой. Действительно, количество запросов в очереди ASP.NET остается 0.
Я настроил настройку сервиса в веб-конфигурации, так что это не должно быть проблемой. Трассировки WCF не показывают никаких исключений из-за этого.
Я использую настраиваемую привязку, которая не содержит никакой безопасности и т.д. Все, что у нее есть, это кодировка и транспорт (httpTransport).
Я изменил файл machine.config для запроса requestQueueLimit: здесь элемент processModel из этого:
<processModel enable="true"
timeout="Infinite"
idleTimeout="Infinite"
shutdownTimeout="0:00:05"
requestLimit="Infinite"
requestQueueLimit="15000"
restartQueueLimit="10"
memoryLimit="60"
webGarden="false"
cpuMask="0xffffffff"
userName="machine"
password="AutoGenerate"
logLevel="Errors"
clientConnectedCheck="0:00:05"
comAuthenticationLevel="Connect"
comImpersonationLevel="Impersonate"
responseRestartDeadlockInterval="00:09:00"
responseDeadlockInterval="00:03:00"
maxWorkerThreads="250"
maxIoThreads="250" />
Но все же я заканчиваю этим лимитом (рассматриваемая машина может справиться с этим, а остальная система возвращается обратно в систему очередей сообщений).
Кто-нибудь может подумать о чем-нибудь еще?
Я - IIS 7.5 на WindowsServer 2008R2. Asp.NET 3.5SP1.
<ч/" > Дополнительная информация: Когда я получаю указанную выше ошибку, вступает в игру счетчик производительности ASP.Net v2.0.50727 "Отказанные запросы". Документы показывают, что это происходит, когда очередь запросов заполнена. Счетчик первичной очереди запросов равен 0 и никогда не сдвигается с места.
Если я вернусь к максимальным рабочим процессам, я могу превысить параллельные запросы 5K.