В Windows Server 2003 R2 появляется ошибка недостаточно системных ресурсов для завершения операции при каких-либо операциях, на терминальном сервере где работает большое количество пользователей. Ситуация такая, что может появляться через каждый час, а может 1 раз в неделю.
При этом свободных ресурсов в системе остается очень много.
Ошибка имеет запись в логах:
Сервер не смог выделить память из выгружаемого пула памяти, так как выгружаемый пул пуст.
Данные —
0000: 00040000 00540001 00000000 c00007e4
0010: 00000000 c000009a 00000000 00000000
0020: 00000000 00000000 0000000b
На форуме тех.поддержки микрософт порекомендовали сделать следующее:
- Запустите редактор реестра (Regedit32.exe).
- Найдите и откройте следующий раздел реестра:
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Session Manager\Memory Management - В меню Правка выберите команду Создать параметр для создания параметра с перечисленными ниже характеристиками:
Имя параметра: PoolUsageMaximum
Тип данных: REG_DWORD
Система счисления: десятеричная
Значение: 60
В данном случае диспетчер памяти начнет урезать память, когда уровень использования достигнет 60% от PagedPoolMax (а не 80%, как это установлено по умолчанию). Если при пиковой нагрузке этого недостаточно, сократите данное значение до 50% или 40%.
Имя параметра: PagedPoolSize
Тип данных: REG_DWORD
Система счисления: Шестнадцатеричная
Значение: 0xFFFFFFFF
Присвоение параметру PagedPoolSize значения 0xFFFFFFFF приводит к максимальному увеличению размеров выгружаемого пула за счет других ресурсов компьютера.
Внимание! Значение 0xFFFFFFFF параметра PagedPoolSize не рекомендуется использовать на компьютерах с 64 ГБ ОЗУ с 32-разрядной версией системы Windows Server 2003. Это может привести к уменьшению количества свободных элементов таблицы страниц и непрерывной перезагрузке компьютера. Для такой конфигурации нужно внимательно подобрать значение на основе требований и доступных ресурсов.
Для того, чтобы внесенные изменения вступили в силу - перезагрузите сервер