Справочник системных ошибок и решений

Windows Server, Active Directory, 1С:Предприятие, СУБД, Linux, Cisco, MikroTik, Asterisk.

⚠️ Важная информация Все материалы, инструкции, команды и скрипты на сайте предоставлены исключительно в ознакомительных целях. Их применение может повлиять на работу операционной системы, программного обеспечения, баз данных, сетевого оборудования и других компонентов инфраструктуры. Перед выполнением действий создайте резервную копию и по возможности протестируйте изменения в безопасной среде. Пользователь самостоятельно оценивает риски и несет ответственность за результат. При отсутствии необходимых знаний обратитесь к квалифицированному ИТ-специалисту.

Event ID 5008 Windows Server, AD и Роли

Event ID 5008 WAS: рабочий процесс пула запросил рециркуляцию

Обновлено: 28.08.2026 · Официальная документация ↗

Симптомы события рециркуляции (Event ID 5008)

В системном журнале периодически фиксируется информационное или предупреждающее событие: Event ID 5008: A worker process serving application pool '[Имя_пула]' has requested a recycle because it reached its private bytes / virtual memory limit or scheduled time.

СимптомПоследствия
Сброс пользовательских сессийПользователи сайта внезапно теряют авторизацию и несохраненные данные корзин
Периодические кратковременные задержкиСайт «подтормаживает» при прогреве кэша (Cold Start) после перезапуска процесса
Высокая нагрузка на CPUЧастая перекомпиляция представлений и инициализация .NET Framework

Диагностика и настройка рециркуляции (Event ID 5008)

Событие 5008 указывает на то, что процесс выполнил условие правила перезапуска, заданного в IIS. Ниже описано, как выяснить точную причину и скорректировать лимиты.

  1. Включите расширенное логирование причин рециркуляции:
# Включение записи всех событий рециркуляции в журнал событий:
& "$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
  1. Скорректируйте лимит выделенной памяти (Private Memory Limit): если вашему приложению требуется больше памяти:
# Увеличение лимита Private Memory до 4 ГБ (4194304 КБ) или отключение (0):
& "$env:SystemRoot\System32\inetsrv\appcmd.exe" set apppool /apppool.name:"ИмяПула" /recycling.periodicRestart.privateMemory:4194304
  1. Отключите стандартный периодический перезапуск каждые 1740 минут: по умолчанию IIS перезапускает пулы каждые 29 часов, что может происходить в разгар рабочего дня:
# Отключение периодического перезапуска по таймеру (установка в 0):
& "$env:SystemRoot\System32\inetsrv\appcmd.exe" set apppool /apppool.name:"ИмяПула" /recycling.periodicRestart.time:00:00:00

# Задание точного ночного времени перезапуска (например, в 03:30 ночи):
& "$env:SystemRoot\System32\inetsrv\appcmd.exe" set apppool /apppool.name:"ИмяПула" /+recycling.periodicRestart.schedule.[value='03:30:00']

Совет: Если ваше приложение хранит сессии в памяти процесса (In-Proc Session State), настройте сервер состояний ASP.NET State Service или Redis Distributed Cache, чтобы пользователи не теряли сессию при рециркуляции.

💡 Практика специалистов: Отключите стандартный интервал 1740 минут и установите четкое расписание ночного перезапуска (например, 04:00). Это гарантирует, что Event 5008 никогда не побеспокоит пользователей днем.

Частые вопросы (FAQ)

Опасно ли появление Event ID 5008?

Нет, это штатное событие управления жизненным циклом IIS. Однако если оно появляется каждые несколько минут — в приложении есть утечка памяти или занижены лимиты.

Почему IIS по умолчанию перезапускает пулы раз в 1740 минут (29 часов)?

Число 1740 выбрано разработчиками Microsoft специально, чтобы время перезапуска смещалось каждый день и не выпадало постоянно на одно и то же рабочее время.

Что такое 'Idle Time-out' (Тайм-аут простоя)?

Это время (по умолчанию 20 минут), после которого неактивный пул выгружается из памяти для экономии ресурсов сервера.

Как сделать так, чтобы пул приложений не засыпал никогда?

В дополнительных свойствах пула установите 'Тайм-аут простоя (минуты)' = 0 и 'Режим запуска' = AlwaysRunning.

Полезные материалы
Рекомендуем