machine.config и processmodel с IIS express - PullRequest
4 голосов
/ 21 января 2011

Мне интересно, повлияет ли изменение processModel в machine.config на приложение IIS Express с интегрированным режимом?

Я пытаюсь изменить maxWorkerThreads как минимум до 100, потому что я сравнивал обычный IIS с IIS express в Windows 7, используя WCAT, чтобы проверить, был ли Скотт правильным, когда он сказал, что IIS express не имеет ограничений на соединение.

Несмотря на то, что IIS Express показывает одновременно более 30 запросов, выполняемых при нормальном пределе IIS, равном 10, фактическое общее количество запросов в секунду сопоставимо между обоими, и IIS Express имеет гораздо более высокое использование ЦП, и в среднем 70 запросов помещаются в очередь против 0 запросов жду нормального IIS! И процессор только около 70% на четырехъядерном процессоре i7. неужели есть место для оптимизации?

дополнительная информация

Я загрузил результаты WCAT на Windows 7, тот же сценарий, в http://d1yb9lkqglrfzu.cloudfront.net/IISExpress-100VU-MachineConfig.zip

  1. IIS Express имеет более низкое число запросов в секунду и общее количество транзакций, обслуживаемых по сравнению с обычным IIS.
  2. IIS Express выполняет одновременно до 50 запросов, в то время как обычный IIS в Windows 7 ограничен до 10, как и планировалось.
  3. IIS Express использует процессор на 30% выше, вероятно, из-за дополнительных запросов, которые он обрабатывает за один раз.
  4. Но в среднем для экспресс-запросов требуется намного дольше. см. Счетчик производительности времени выполнения запроса и анализ времени (первый и последний байт). Экспресс может превзойти IIS только в общем количестве обработанных запросов, потому что он может обрабатывать больше запросов одновременно!

Теория

  1. Может ли тот факт, что IIS express печатает каждый запрос в окне командной строки, даже если трассировка не установлена, ни один не замедляет его.

  2. Я также заметил множество дополнительных модулей, зарегистрированных в IIS express applicationhost.config, которых нет в IIS applicationhost.config. Может ли быть причиной проблемы дополнительные модули отладки / трассировки.

  3. Я заметил, что в IIS express отсутствуют модули FileCache и HTTPCache. Может быть, поэтому?

Я надеюсь, что эксперты asp.net смогут уточнить, как эти результаты возможны, если IIS express не ограничен.

1 Ответ

6 голосов
/ 22 января 2011

Настройки Machine.config применяются к приложениям asp.net, работающим в IISExpress. Просто убедитесь, что вы соответствуете .Net версии и битности (iisexpress работает только в 32-битном режиме, поэтому

  • %windir%\Microsoft.NET\Framework\v2.0.50727\CONFIG\machine.config или
  • %windir%\Microsoft.NET\Framework\v4.0.30319\CONFIG\machine.config являются правильными для файлов, основанных на версии CLR. Не редактируйте файл в каталоге Framework64.

IIS Express не ограничивает соединения, хотя могут быть некоторые ограничения, исходящие от самой ОС. Производительность не является главным приоритетом для iis express. IIS Express не намеренно ограничивает выполнение, но не пытается полностью использовать процессор. Ваши служебные наблюдения интересны. Я буду исследовать, что может быть причиной этого. Вы пытались запустить однопоточное клиентское приложение в цикле, чтобы увидеть, как IIS сравнивается с IIS Express.

...