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

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

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

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

Анализ утечек памяти ядра утилитой Poolmon: теги выгружаемого и невыгружаемого пула

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

Симптомы утечки памяти ядра (Pool Memory Leak)

На сервере постепенно заканчивается свободная оперативная память при относительно небольшой нагрузке со стороны пользовательских приложений. В системном журнале появляются ошибки: Event ID 2019: The server was unable to allocate from the system nonpaged pool because the pool was empty или Event ID 2020: ...paged pool was empty. Значение Невыгружаемый пул (Non-paged pool) в диспетчере задач достигает нескольких десятков гигабайт.

СимптомГде отображаетсяПричина
Event ID 2019 / 2020System LogПолное исчерпание пула памяти ядра (Paged / Non-Paged Pool)
Невыгружаемый пул занимает > 80% RAMДиспетчер задач / ПамятьДрайвер выделяет системную память через ExAllocatePoolWithTag и не освобождает ее
Сервер перестает открывать новые сокетыСетевые службыУтечка сетевых буферов Wsk / Netio

Пошаговый поиск тега утечки с помощью Poolmon

  1. Запустите утилиту Poolmon из состава Windows Driver Kit (WDK):
    poolmon -p -b

    Параметр -p фильтрует по типу пула, -b сортирует по объему потребляемой памяти (столбец Bytes).

  2. Определите тег пула (Pool Tag) с максимальным объемом памяти и числом не освобожденных аллокаций: обратите внимание на 4-буквенный тег в первом столбце Tag (например, Cont, WfpC, smbD).
  3. Найдите драйвер, использующий данный тег памяти: найдите совпадение тега в системных бинарных файлах Windows:
    findstr /m /l "ИМЯ_ТЕГА" C:\Windows\System32\drivers\*.sys
  4. Проверьте расшифровку тега в системном файле пула: откройте файл C:\Program Files (x86)\Windows Kits\10\Debuggers\x64\triage\pooltag.txt и найдите описание виновного компонента.

Справка: Память невыгружаемого пула (Non-Paged Pool) никогда не сбрасывается в файл подкачки и обязана постоянно находиться в физической оперативной памяти.

💡 Практика специалистов: Если Poolmon указывает на тег 'NDis' или 'WfpC', виновником утечки почти всегда является сторонний сетевой агент мониторинга или старая версия антивируса. Обновите антивирусный агент или отключите Network Inspection System.

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

Что такое тег пула памяти (Pool Tag)?

Это 4-символьный идентификатор, который разработчики драйверов обязаны указывать при вызове функции выделения системной памяти ядра ExAllocatePoolWithTag.

Как с помощью PowerShell посмотреть размер пулов памяти?

Используйте Get-CimInstance Win32_OperatingSystem | Select-Object TotalVisibleMemorySize, FreePhysicalMemory, @{N='NonPagedPool_MB';E={(Get-Counter '\Memory\Pool Nonpaged Bytes').CounterSamples.CookedValue / 1MB}}.

Какие теги чаще всего вызывают утечки?

Частые виновники: сетевые фильтры фаерволов и антивирусов (WfpN, NetIO), драйверы файловых минифильтров (FMfl, FLtM) и драйверы виртуализации.

Где скачать утилиту poolmon.exe?

Утилита poolmon.exe входит в состав официального комплекта Windows Driver Kit (WDK) или Windows SDK от Microsoft.

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