IIS 7 порождает процессы и потребляет память для тривиальных запросов

У нас есть веб-приложение (ASP.NET MVC 4), работающее на IIS 7.0. Недавно он начал сбой, ведение журнала OutOfMemoryException как причина. Мы также получаем множество уведомлений "нездоровый рабочий процесс", а также "не удалось инициализировать" и "не удалось создать домен приложения". При тестировании мы заметили, что IIS порождает от трех до шести рабочих процессов для каждого запроса, даже простых запросов GET для относительно легких страниц. Это, очевидно, приводит к скачку в использовании памяти - часто между 100 и 200 МБ. Неудивительно, что это незадолго до того, как не хватает памяти, замедляется и в конечном итоге падает.

Этот сервер некоторое время работал с этим приложением, и хотя в последнее время в него были внесены некоторые изменения, в основном это небольшие исправления или косметические исправления, и эта проблема не исчезла, когда я заменил ее более старой резервной копией.

Что может быть причиной этого, и как я могу решить это?

2 ответа

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

Похоже на веб-сады (один пул приложений порождает дополнительные процессы). Я бы предложил не использовать веб-сады, если они используются. Кроме того, если вы используете SCOM 2012 sp1, я бы предложил развернуть APM (монитор производительности приложений) и отправить пакет управления, чтобы отслеживать происходящее. APM не требует никаких изменений кода и может перейти на функциональный уровень. Единственным другим вариантом является использование IIS Debug Diag для http://support.microsoft.com/kb/919790

Другие вопросы по тегам