Event ID 50001 WAS: рабочий процесс пула IIS перезапущен
Симптомы рециркуляции рабочего процесса IIS
В журнале System фиксируется информационное событие Event ID 50001: A worker process serving application pool '[Имя_Пула]' recycled от источника WAS (Windows Process Activation Service).
| Симптом | Влияние на пользователей |
|---|---|
| Кратковременный рост времени отклика (Cold Start) | Первый веб-запрос после рециркуляции обрабатывается дольше из-за прогрева кэша и компиляции |
| Очистка внутрипроцессных сессий (In-Memory Sessions) | Если сайт хранит сессии в памяти (InProc), пользователи могут быть разлогинены |
| Появление нового PID процесса w3wp.exe | Диспетчер задач фиксирует завершение старого и старт нового процесса пула |
Диагностика и оптимизация рециркуляции (Event ID 50001)
Рециркуляция — штатный механизм IIS для предотвращения деградации производительности. Однако если перезапуск происходит слишком часто, это указывает на утечку памяти или ошибки в настройках пула.
- Выясните точную причину рециркуляции через журнал событий:
# Включение расширенного протоколирования всех типов рециркуляции в IIS (PowerShell):
& "$env:SystemRoot\System32\inetsrv\appcmd.exe" set config -section:system.applicationHost/applicationPools /applicationPoolDefaults.recycling.logEventOnRecycle:"Time,Requests,Schedule,Memory,IsapiUnhealthy,OnDemand,ConfigChange,PrivateMemory" /commit:apphost- Отключите стандартный периодический перезапуск каждые 29 часов (1740 минут):
# Отключение перезапуска по интервалу времени (установка 00:00:00):
& "$env:SystemRoot\System32\inetsrv\appcmd.exe" set apppool /apppool.name:"ИмяПула" /recycling.periodicRestart.time:00:00:00- Настройте перезапуск по строгому расписанию в нерабочее время:
# Добавление ночного перезапуска пула в 04:00 утра:
& "$env:SystemRoot\System32\inetsrv\appcmd.exe" set apppool /apppool.name:"ИмяПула" /+recycling.periodicRestart.schedule.[value='04:00:00']- Включите режим Overlapped Recycle: убедитесь, что параметр
disallowOverlappingRotationустановлен вFalse, чтобы IIS запускал новый процесс до завершения старого, исключая простой сайта.
Рекомендация: Для сохранения авторизации пользователей при перезапусках настройте MachineKey в web.config и перенесите состояние сессий в Redis или SQL Server Session State.
Частые вопросы (FAQ)
Почему пулы приложений IIS перезапускаются по умолчанию каждые 1740 минут?
1740 минут (29 часов) — значение по умолчанию в IIS. Оно выбрано так, чтобы время ежедневного перезапуска смещалось и не выпадало постоянно на пиковые часы нагрузки.
Приводит ли рециркуляция к ошибке 503 Service Unavailable?
При стандартных настройках (Overlapped Recycle = True) — нет. IIS создает новый рабочий процесс и переключает трафик без прерывания обслуживания.
Как принудительно перезапустить пул приложений вручную?
Выполните команду appcmd recycle apppool /apppool.name:"ИмяПула" или через оснастку IIS Manager.
Что делать, если рециркуляция происходит каждые несколько минут?
Проверьте пороги Private Memory Limit / Virtual Memory Limit в свойствах пула и проанализируйте приложение на утечки оперативной памяти.