Подтвердить что ты не робот

Почему пулы приложений IIS необходимо перерабатывать?

Пулы приложений в IIS перерабатываются очень часто, и я не могу понять, почему. Я помню, как читал о возможной проблеме в IIS6, которая означала, что вы были вынуждены утилизировать, но быстрый поиск теперь оказывается пустым. На IIS6 или 7 вы можете отключить параметры времени простоя, продолжительности и определенного времени, поэтому никаких проблем нет.

Так почему каждый сайт .net перерабатывает пул приложений? Если на сайте не было утечек памяти, не могли бы вы создать сайт, который никогда не нужно было перерабатывать?

Кроме того, если это не удастся, каков будет лучший способ обеспечения вызова фоновых задач, существуют ли какие-либо модули автоматического перезапуска для IIS или для выполнения этих вызовов должна использоваться внешняя служба?

Похоже, это можно сделать, если вы действительно хотели/нужно?

4b9b3361

Ответ 1

Веб-сайты предназначены для работы (хотя и в условиях безгражданства). Существует множество причин, по которым утилизация пула приложений может быть полезной для платформы хостинга для обеспечения оптимального функционирования веб-сайта и сервера. К ним относятся (но не ограничиваясь) динамически скомпилированные сборки, оставшиеся в appdomain, использование кеширования сеансов (без гарантии очистки), другие веб-сайты, запущенные amok, и ресурсы, потребляемые со временем и т.д. Пул приложений обычно может обслуживать более одного веб-сайта, поэтому утилизация пула приложений может быть полезной для обеспечения бесперебойной работы.

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

Ответ 2

С https://weblogs.asp.net/owscott/why-is-the-iis-default-app-pool-recycle-set-to-1740- минут

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

Моя причина в том, что, во-первых, ваш сайт должен быть в состоянии пережить переработку без особых последствий, поэтому ежедневная переработка не должна быть проблемой. Во-вторых, я обнаружил, что даже у пулов приложений с хорошим поведением со временем может появиться нечто, влияющее на пул приложений. Я видел проблемы с шаблонами трафика, которые вызывают чрезмерное кэширование или что-то странное в приложении, и я видел очень редкую ошибку IIS (действительно, редкую!), Которая не является проблемой при ежедневной утилизации. Это лейкопластырь? Возможно, но если ежедневный перезапуск удерживает некритичную проблему от пузырей наверху, то я считаю, что это хорошая упреждающая мера, позволяющая сэкономить много усилий по устранению неполадок для чего-то, что, вероятно, не важно для устранения неполадок. Однако, если вы считаете, что у вас есть реальная проблема, которая устраняется при переработке, то обязательно отключите автоматическую переработку, чтобы вы могли отследить и решить вашу проблему. Theres нет черно-белого ответа. Только вы можете принять лучшее решение для вашей среды.

Есть много более полезной/интересной информации для кого-то, относительно малообразованного в мире IIS (такого как я), я рекомендую вам прочитать его.