Очистка пула приложений очищает очередь запросов?

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

Мой вопрос заключается в том, что при перезапуске пула приложений, в котором настроен только один рабочий процесс, это очищает очередь запросов или запросы в очереди будут выполнены при запуске нового рабочего?

1 ответ

Когда вы перезапускаете пул приложений в IIS 7 и выше (не уверены в более ранних версиях), по умолчанию IIS запускает новый рабочий процесс для обработки новых запросов, прежде чем завершить существующий рабочий процесс. Ни при каких условиях отдельный запрос не будет выполнен, и, если какие-либо запросы будут поставлены в очередь, новый рабочий процесс будет обрабатывать их как обычно.

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

Лучшей практикой будет устранение утечки памяти приложения в источнике, но я понимаю, что это не всегда практично. Я также проверил бы, чтобы убедиться, что у вас действительно есть проблема в первую очередь; не просто запланируйте регулярную перезагрузку пула приложений на случай, если в приложении есть тест на утечку, и сначала убедитесь, что у вас проблема

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