2013-10-13 3 views
0

ОС: Windows Server 2012 StandardIIS 8 пулы приложений Taks 30mins + запуск и не отвечать на запросы

IIS: 8.0.9200.16384

Процессор: 4x Xeon 2.67Ghz CPU

Оперативная память: 40GB

Проблема:

Мы недавно включена функция IIS в AutoStart, поскольку это OUR время запуска для пулов приложений значительно выросло. Пул приложений, похоже, работает, но, похоже, он наращивает потребление ЦП до 25% в течение примерно 30 минут, а веб-сайты, запущенные в этом пуле, не реагируют до тех пор, пока это не завершится. Мы проверили журнал событий, и никаких ошибок не обнаружено. Мы проверили регистрацию в нашей функции предварительной загрузки, и это, по-видимому, занимает около 60-90 секунд.

Как мы можем диагностировать причину задержки запуска пулов приложений?

фона:

Мы служим до нескольких копий одного и того же приложения ASP.Net MVC3, из нескольких пулов приложений (20 сайтов в бассейн). У нас около 8 пулов, обслуживающих до 160 сайтов. У нас построен IProcessHostPreloadClient, который предварительно загружает некоторые настройки из базы данных при запуске сайтов. У нас есть второй сервер с теми же базовыми спецификациями, но только 3 пула по 20, для запуска которых требуется всего 5 минут на пул.

ответ

0

Для тех, кто заинтересован здесь то, что мы сделали, чтобы разрешить/смягчить проблему:

  1. разбить наши сайты на более мелкие группировки в пулах приложений (это сокращает время запуска каждого пула приложений). Мы отправились с 10 сайтами на пул.
  2. Перейдите к использованию приложения IIS 8 Инициализируйте параметр «PreloadEnabled», а не serviceAutoStartProvider для инициализации сайта.
  3. При развертывании нового кода не перезапускайте пулы приложений, а используйте функцию app_offline.htm, чтобы выгрузить приложение и перезапустить его.

Функция app_offline.htm является ключевой для нас, это означает, что мы можем развертывать новые версии нашего программного обеспечения без остановки и запуска пулов приложений и при этом накладывать штраф за запуск. Кроме того, постепенное перезапуск пулов приложений помогает снизить нагрузку на процессор, что означает, что мы получили согласованное время запуска для каждого пула. Это необходимо только при перезагрузке IIS или перезагрузке сервера (редко).