У нас есть сервер удаленного взаимодействия .NET 2.0, работающий в режиме единого вызова под IIS7.Он имеет два API, скажем:
- DoLongRunningCalculation () - имеет много запросов к базе данных и может занять много времени.
- HelloWorld () - просто возвращает «Hello World»".
Мы попытались провести стресс-тестирование сервера удаленного взаимодействия (на компьютере под управлением Windows 7) в худшем случае, бомбардируя его случайным образом двумя вызовами API, и обнаружили, что если мы выйдем за пределы 10 клиентских запросовответ HelloWorld (который обычно составляет менее 0,1 с) начинает занимать все больше и больше времени и занимает много секунд.Наша цель состоит в том, чтобы мы не хотели иметь длительные удаленные вызовы, чтобы заблокировать краткосрочные вызовы.Вот счетчики производительности для ASP.NET v2.0.50727, если у нас запущено 20 клиентских потоков:
- Запросы в очереди: 0
- Выполнение запросов: (Макс .: 10)
- Рабочие процессы запущены: 0
- Режим экземпляра конвейера: (Макс .: 10)
- Запросы в очереди приложений: 0
Мы попытались установить maxConcurrentRequestsPerCPUдо «5000» в реестре согласно блогу Томаса: Использование потоков ASP.NET на IIS 7.0 и 6.0 , но это не помогло.Исходя из приведенных выше данных, кажется, что число одновременных запросов застряло на 10.
Итак, вопрос:
- Как мы можем увеличить количество одновременных запросов?Основная цель заключается в том, что мы не хотим, чтобы длительные удаленные вызовы блокировали кратковременные вызовы.
- Почему выполнение максимального количества запросов всегда застряло на 10?
Заранее спасибо.