У нас есть сервер Remoting .NET 2.0, работающий в режиме Single-Call в IIS7. Он имеет два API, например:Увеличение одновременных запросов на приложение .NET Remoting в IIS
- DoLongRunningCalculation() - имеет много запросов к базе данных и может занять много времени.
- HelloWorld() - просто возвращает «Hello World».
Мы попытались стресс-тест сервер удаленного взаимодействия (на машине Windows 7) в худшем случае, облучая его случайным образом с двумя вызовами API и обнаружил, что, если мы выходим за пределы 10 клиентских запросов, ответ HelloWorld (который обычно составляет менее 0,1 с), начинает длиться дольше и дольше в течение многих секунд. Наша цель состоит в том, что мы не хотим иметь длительные удаленные вызовы для блокировки коротких вызовов. Вот счетчики производительности для ASP.NET V2.0.50727, если у нас есть 20 клиентских потоков, выполняющихся:
- запросы QUEUED: 0
- Выполняется запросов: (Макс: 10)
- рабочих процессов Продолжительность: 0
- Pipeline Режим Instance: (Макс: 10)
- Запросы в очереди Application: 0
Мы пытались установки maxConcurrentRequestsPerCPU на "5000" в REGIST ry в блоге Томаса: ASP.NET Thread Usage on IIS 7.0 and 6.0, но это не помогло. На основании приведенных выше данных, представляется, что число одновременных запросов застревает на 10.
Итак, вопрос:
- Как мы идти о повышении одновременных запросов? Основная цель заключается в том, что мы не хотим иметь длительные удаленные вызовы для блокировки коротких вызовов.
- Почему Max Requests Выполнение всегда застряло в 10?
Заранее спасибо.
Собственно, то, что мы наблюдали, немного отличается. Ограничение соединения для Windows 7 составило 10; потому что, когда мы выходили за рамки этого, мы видели ухудшение производительности. Вы правы, на сервере windows2008 производительность была лучше, но мы еще не смогли ее количественно оценить. – hpatil
На самом деле, ограничение на подключение 20 накладывается Windows. У самого IIS все еще есть ограничение на 10 соединений, что объясняет ваши результаты. Ограничение на 10 соединений устанавливается всеми экземплярами IIS, запущенными в несерверных операционных системах (чтобы избежать попыток пользователей обслуживать сайты без покупки серверной ОС) – Chris