Я заметил, что в одном из моих веб-приложений для производства, когда я вручную перерабатываю пул приложений, переработанный рабочий процесс может занять более 60 секунд, чтобы фактически быть полностью уничтожен, основываясь на наблюдении за ним в диспетчере задач. Однако, если я полностью остановлю пул приложений, рабочий процесс исчезнет почти мгновенно - в течение 1-2 секунд.
Итак, мой вопрос в два раза:
a) Почему так долго требуется уничтожить процесс (и более значимо, освободить ресурсы, используемые/заблокированные им), когда пул приложений будет переработан, а не остановлен; и
b) Предполагая, что я отключил трафик от перенаправления на сервер, есть ли какая-нибудь причина НЕ останавливаться/запускать вместо утилизации?
Изменить: Чтобы прояснить, прежде чем я либо переработаю, либо остановил пул приложений, я остановлю трафик на сервере, о котором идет речь (сервер находится в кластере с балансировкой нагрузки, и я удаляю сервер из балансира нагрузки). Поэтому теоретически не должно быть запросов, поступающих на веб-сайт в то время, когда я делаю что-либо в пуле приложений.
Изменить часть Deux: После прочтения ссылки Igal мне кажется очевидным, что происходит. Когда я перерабатываю пул приложений, запускается новый процесс, но поскольку трафик вообще отсутствует, он не регистрирует новый процесс как функционирующий, поэтому он не отключает старый до тайм-аута (который равен 90 секунд).
Благодаря этим знаниям мне ясно, что функциональность "Recycle" специально предназначена для использования на потоке в реальном времени на промежуточном потоке, и поскольку я вручную трачу трафик заранее, вместо этого я должен использовать stop/start.