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