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

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

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

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

Event ID 50003 WAS: лимит виртуальной памяти пула приложений исчерпан

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

Симптомы рециркуляции по лимиту виртуальной памяти

В системном журнале System фиксируется предупреждение Event ID 50003: A worker process serving application pool '[Имя_Пула]' requested a recycle because it reached its virtual memory limit от источника WAS.

СимптомПоследствия
Внезапная перезагрузка рабочего процесса w3wp.exeОбрыв текущих транзакций и файловых загрузок клиентов
Рост использования виртуальной памяти процессаРазмер зарезервированной виртуальной памяти (Virtual Bytes) превысил заданное число КБ
Сброс данных кэша сайтаВременное падение производительности при повторном наполнении кэша

Пошаговое устранение сбоя Event ID 50003

Ограничение по виртуальной памяти (Virtual Memory Limit) является устаревшим механизмом, созданным для 32-разрядных систем. В современных 64-битных операционных системах установка этого лимита приводит к ложным срабатываниям, так как приложения .NET резервируют большие виртуальные адресные пространства без фактического расхода физической памяти RAM.

  1. Отключите лимит виртуальной памяти (установите в 0):
# Полное отключение лимита виртуальной памяти для конкретного пула (PowerShell):
& "$env:SystemRoot\System32\inetsrv\appcmd.exe" set apppool /apppool.name:"ИмяПула" /recycling.periodicRestart.memory:0
  1. Отключите лимит виртуальной памяти глобально для всех пулов сервера:
# Сброс лимита Virtual Memory в параметрах по умолчанию для IIS:
& "$env:SystemRoot\System32\inetsrv\appcmd.exe" set config -section:system.applicationHost/applicationPools /applicationPoolDefaults.recycling.periodicRestart.memory:0 /commit:apphost
  1. Проверьте фактическое потребление оперативной памяти процессом w3wp.exe:
# Мониторинг реальной физической (WorkingSet) и виртуальной (PrivateBytes) памяти IIS:
Get-Process w3wp | Select-Object Id, ProcessName, @{Name="WorkingSet_MB";Expression={[math]::round($_.WorkingSet64/1MB,2)}}, @{Name="VirtualMemory_MB";Expression={[math]::round($_.VirtualMemorySize64/1MB,2)}}

Важно: Рекомендуется ограничивать только Private Memory Limit (выделенную физическую память), если требуется сдерживать утечки памяти, а значение Virtual Memory Limit всегда оставлять равным 0 (Disabled).

💡 Практика специалистов: Установка любого ненулевого значения в 'Лимит виртуальной памяти' на x64-серверах с приложениями на .NET Core или ASP.NET гарантированно приводит к циклическим рециркуляциям Event 50003. Всегда держите этот параметр равным 0.

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

В чем разница между Virtual Memory Limit и Private Memory Limit в IIS?

Virtual Memory — это общий объем виртуального адресного пространства, которое процесс зарезервировал в ОС. Private Memory — это фактический объем оперативной памяти, выделенный только данному процессу w3wp.exe.

Почему для 64-битных систем лимит виртуальной памяти не имеет смысла?

64-разрядные процессы имеют практически неограниченное адресное пространство (128 ТБ). Среда .NET CLR может зарезервировать гигабайты виртуальных страниц под кучу GC, не используя реальную RAM.

Где настроить эти ограничения в IIS Manager?

В оснастке 'Диспетчер служб IIS' откройте 'Пулы приложений' -> выберите пул -> 'Дополнительные параметры' -> раздел 'Переработка' -> установите 'Лимит виртуальной памяти (КБ)' в 0.

Какое значение по умолчанию имеет лимит виртуальной памяти в новых версиях IIS?

По умолчанию в современных версиях IIS этот параметр всегда установлен в 0 (отключен).

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