2011-01-21 3 views
2

Мне интересно, изменит ли процесс processModel в machine.config какое-либо влияние на приложение с интегрированным режимом IIS?machine.config и processmodel с IIS express

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

Хотя IIS express показывает 30+ запросов, выполняемых одновременно с нормальным лимитом IIS, равным 10, фактические общие запросы в секунду сопоставимы между ними, и IIS express имеет гораздо более высокий уровень использования процессора и в среднем 70 запросов в очереди vs 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 с использованием процессора на 30% выше, вероятно, из-за дополнительных запросов, обрабатываемых одновременно.
  4. Но в среднем экспресс-запросы принимают дольше. см. «Счетчик времени выполнения выполнения» и анализ времени (первый и последний байт). Экспресс может только победить IIS в общем количестве запросов, потому что он может обрабатывать больше запросов за раз!

Теория

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

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

  3. Я замечаю, что IIS express не имеет модулей FileCache и HTTPCache. Неужели поэтому?

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

ответ

4

Параметры 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 не намеренно дросселирует выполнение, но не выходит за рамки полного использования CPU. Интересное наблюдение за производительностью. Я исследую, что может быть причиной этого. Вы пытались запустить однопоточное клиентское приложение в цикле, чтобы увидеть, как IIS сравнивается с IIS Express.

+0

Большое спасибо за ваш ответ. Я вижу, что вы являетесь экспертом IIS и, пожалуйста, см. Дополнительную информацию, добавленную в вопрос. Я думаю, вы найдете результаты WCAT очень интересными. Приложение выполнялось как на IIS, так и на Express с использованием интегрированного пула приложений .NET 2.0. Возможно, IIS express добавляет дополнительные модули или дополнительные служебные отладки. Но на основании вышеприведенных результатов, выражаемых как персональный веб-сервер, на самом деле может быть намного хуже, чем IIS под Windows 7, особенно для небольшого числа клиентов. – Tuviah

+0

Дополнительным примечанием является то, что IIS 8/10 Express имеет как 32, так и 64, но версии, и вместо этого использует machine.config .NET 4. –

Смежные вопросы