Назад | Перейти на главную страницу

Необъяснимое снижение производительности при переходе с IIS6 на IIS7

Недавно мы переместили наше приложение ASP.NET 4.0 с виртуальной машины Windows2003 x64 / IIS 6 на новую виртуальную машину Windows 2008 x64 RC2 / IIS 7 (7.5). Ресурсы идентичны 4 ГБ памяти, 4 ЦП, оба находятся на одном хосте ESX. Я попытался сопоставить все возможные настройки конфигурации iis, кеширование, сжатие и т. Д. Между ними. Тем не менее, согласно внешнему мониторингу производительности, проводимому как alertite, так и gomez, время отклика с момента переключения увеличилось вдвое.

Среднее время до первого байта увеличилось на несколько десятых секунды по всем направлениям. Время доставки «контента» увеличилось на целую секунду по всем направлениям. «Загрузка полной страницы» увеличилась на несколько секунд по всем направлениям.

Чтобы еще больше запутать ситуацию, мы начали с фермы windows2008 с двумя узлами, используя ncache для кластерного сеанса и балансировщик нагрузки парчовой, и увидели увеличение времени отклика в 2-5 раз. Затем мы вернулись только к одному серверу и обошли балансировщик нагрузки, чтобы вернуться к двукратному увеличению времени отклика.

Тот факт, что балансировщик нагрузки усугубил ситуацию и что основная часть увеличения времени отклика приходилась на метрики загрузки контента / базовой страницы и полной страницы, заставляет меня думать, что это что-то связанное с сетью или, по крайней мере, на уровне IIS, где это просто не отвечает так быстро, как IIS6.

Я надеюсь, что упустил из виду некоторые ключевые настройки, потому что не могу понять, как обновление ОС и удвоение ресурсов (добавление второго узла) привело к снижению производительности.

Я понимаю, что это не так много информации, поэтому я просто ищу любые предложения о том, где искать или как это диагностировать. Предложения о том, на какие счетчики perfmon смотреть, что искать и что они означают, могут помочь. Приветствуются дикие догадки.

Обновление ответа, поскольку блог больше не обслуживается. Ответ здесь заключался в отключении разгрузки TCP для сетевого адаптера через расширенные настройки адаптера (как IP4, так и IP6). Еще в 2011 году, когда был задан этот вопрос, многие сетевые драйверы для сетевых карт плохо справлялись с этой операцией и резко замедляли работу операционных систем. Обычно это больше не проявляется, поскольку с тех пор драйверы и программное обеспечение виртуализации значительно улучшились.

Вы используете пул приложений в «классическом» или «интегрированном» режиме? При работе в «Классическом» режиме возникают некоторые накладные расходы, которые вы, возможно, захотите изучить. Ты можешь Об этом подробнее здесь. Обратите внимание, что ваше приложение может не работать просто в «интегрированном» режиме без некоторых незначительных изменений для гармоничной работы в конвейере IIS7.

Все это говорит о том, что я не уверен, что это точно объяснит вашу ситуацию ... особенно если вы действительно говорите об обслуживании контента на основе статической файловой системы. Если у вас есть собственные обработчики посередине, это, безусловно, может быть связано.