Не удается выделить память из системного выстраивного пула

В этой статье описывается решение проблемы, из-за чего не удается выделить память из системного выстраивного пула.

Применяется к: Windows Server 2012 R2
Исходный номер базы знаний: 312362

Симптомы

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

Источник — SRV
Тип — ошибка
Идентификатор события — 2020
Описание-

Серверу не удалось выделить из системного выстраивного пула, так как пул был пустым.
Данных-
0000: 00040000 00540001 00000000 c00007e4
0010: 00000000 c000009a 00000000 0000000000
0020: 00000000 00000000 000000b

Причина

Несколько факторов могут привести к истощению объема памяти для страничного пула. Включение тегов пула и их использование poolsnaps с различными интервалами времени может помочь вам понять, какой драйвер потребляет память на странице пула. poolsnaps Если указывает, что тег MmSt (прототип объектов mm section objectptEs) является крупнейшим потребителем и память выгружаемого пула исчерпана или система регистрирует событие ошибки 2020-х, существует большая вероятность того, что на сервере открыто большое количество файлов. По умолчанию диспетчер памяти пытается обрезать выделенную память страничного пула, когда система достигает 80 процентов общего выстраивного пула. В зависимости от конфигурации системы возможный максимальный объем памяти пула на странице на компьютере может составлять 343 МБ, а 80 процентов от этого числа — 274 МБ. Если диспетчеру памяти не удается выполнить обрезку достаточно быстро, чтобы не отставать от спроса, может возникнуть событие, указанное в разделе "Симптомы" этой статьи. Настроив диспетчер памяти для запуска процесса обрезки раньше (например, когда он достигает 60 процентов), можно будет избежать нехватки памяти в погаженном пуле во время внезапного пикового использования и избежать нехватки памяти для страничного пула.

Разрешение

Важно!

В этот раздел, описание метода или задачи включены действия, содержащие указания по изменению параметров реестра. Однако неправильное изменение параметров реестра может привести к возникновению серьезных проблем. Поэтому следует в точности выполнять приведенные инструкции. Для дополнительной защиты создайте резервную копию реестра, прежде чем редактировать его. Так вы сможете восстановить реестр, если возникнет проблема. Дополнительные сведения о создании резервной копии и восстановлении реестра см. в соответствующей статье базы знаний Майкрософт:
322756 Создание резервной копии и восстановление реестра Windows

Следующая рекомендация по настройке была полезна для устранения проблемы:

  1. Запустите редактор реестра (Regedt32.exe).

  2. Найдите и щелкните следующий раздел в реестре:
    HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Session Manager\Memory Management

  3. В меню Правка щелкните пункт Добавить значение, а затем добавьте следующее значение реестра:
    Имя значения: PoolUsageMaximum
    Тип данных: REG_DWORD
    Radix: Decimal
    Значение: 60

    Если установить значение 60, диспетчер памяти начинает процесс обрезки на уровне 60 процентов PagedPoolMax, а не значение по умолчанию 80 процентов. Если порогового значения в 60 процентов недостаточно для обработки пиков активности, уменьшите этот параметр до 50 или 40 процентов.

    Имя значения: PagedPoolSize
    Тип данных: REG_DWORD
    Радикс: Шестнадцатеричный
    Данные о значении: 0xFFFFFFFF

    Параметр PagedPoolSize 0xFFFFFFFF выделяет максимальное количество страничных пулов вместо других ресурсов для компьютера.

    Предостережение

    Параметр 0xFFFFFFFF PagedPoolSize не рекомендуется использовать на 32-разрядных компьютерах под управлением Windows Server 2003 с 64 ГБ ОЗУ. Это потенциально приведет к отключению записи Free System PTE и может привести к непрерывной перезагрузке компьютера. Для этой конфигурации тщательно выберите значение на основе требований и доступных ресурсов.

  4. Закройте редактор реестра.

  5. Перезапустите сервер, чтобы изменения вступили в силу.

Состояние

Корпорация Майкрософт подтвердила, что это проблема в продуктах Майкрософт, перечисленных в разделе "Применимо к".