1

С тех пор как я увеличил объем памяти на своем компьютере, пул невыгружаемых страниц стал действительно большим (вырос с 96 МБ с 2 ГБ оперативной памяти до 715 МБ с 16 ГБ).

Слева направо: размер выгружаемого пула по Rammap на 715 МБ, диспетчер задач с «видеть все процессы» даже не 1 МБ (столбец NP) и параметры реестра на 192 МБ, которые просто игнорируются

Это не понятно, так как диспетчер задач сообщает о менее чем 1 МБ пула невыгружаемого доступа из-за процессов. И Poolmon сообщает 35MB для самого большого использования памяти невыгружаемого пула.

Эти скриншоты были сделаны сразу после запуска, так что это не утечка памяти в драйвере или около того. При создании образа и его запуске на виртуальной машине после запуска используется только 350 МБ памяти!

Microsoft указывает значение в реестре, чтобы ограничить размер невыгружаемого пула, здесь: https://technet.microsoft.com/en-us/library/cc976155.aspx, но перезапуск не решает проблему. Я попытался дать значения в байтах (документация так сказать), в КБ и МБ. Неудачно.

В Linux я могу рендерить 3D-сцены размером до 15,2 ГБ. В Windows из-за некоторой защиты и этого огромного пула я могу использовать только 12 ГБ, а затем он начинает переключаться на диск, что заставляет один рендеринг занимать> 20 минут вместо 1 минуты 24 секунды в Linux.

Итак, как я могу ограничить размер невыгружаемого пула?

1 ответ1

0

Запуск программы, требующей много памяти (например, приложения для работы с 3D или фотографиями) и позволяющей ей занять достаточно памяти для начала использования файла подкачки, приведет к освобождению памяти с невыгружаемой памятью.

Я понятия не имею, почему, но в тот момент, когда начинает использоваться файл подкачки, пул невыгружаемого хранилища падает с 750 МБ до 200 МБ и остается на этом уровне после этого (проверено в течение нескольких часов интенсивной работы с большим количеством программ, работающих и использующих много памяти).

В моем случае Windows7 блокирует только 350 МБ памяти из общего объема 16 ГБ (по сравнению с общим объемом 1 ГБ при запуске). Конечно, используется гораздо больше памяти, но она хорошо используется за счет кеширования, что делает ее доступной, ускоряя запуск программы и считывая данные из ОЗУ, а не с диска. Такой огромный невыгружаемый пул по умолчанию просто теряет память, заставляя систему начать замену намного раньше, чем следовало бы.

Эта ошибка огромного начального невыгружаемого пула не встречается в версиях Windows до 7.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .