Проблема в большинстве случаев вызвана неправильной работой сетевых драйверов в сочетании с драйверами монитора использования сети Windows 10 (Network Data Usage, NDU) и достаточно просто решается, о чем и пойдет речь в этой инструкции. В некоторых случаях, причиной утечек памяти могут быть и другие драйверы оборудования. Близкий по теме материал: Что такое память Кэшировано в Windows 10 и как очистить кэшированную память .
Исправление утечки памяти и заполнения невыгружаемого пула при работе в сети
Наиболее распространенной ситуацией является, когда невыгружаемый пул RAM Windows 10 заполняется при работе в Интернете. Например, легко заметить, как он растет при скачивании большого файла и после этого не очищается.
Если описанное — ваш случай, то исправить ситуацию и очистить невыгружаемый пул памяти можно следующим образом.
- Зайдите в редактор реестра (нажмите клавиши Win+R на клавиатуре, введите regedit и нажмите Enter).
- Перейдите к разделу
HKEY_LOCAL_MACHINESYSTEMControlSet001ServicesNdu
- Дважды нажмите по параметру с именем «Start» в правой части редактора реестра и задайте значение 4 для него, для отключения монитора использования сети.
- Закройте редактор реестра.
По завершении, перезагрузите компьютер и проверьте, была ли исправлена проблема. Как правило, если дело действительно в драйверах сетевой карты, невыгружаемый пул больше не растет больше своих обычных значений.
Если шаги, описанные выше, не помогли, попробуйте следующее:
- Если драйвер сетевой карты и (или) беспроводного адаптера был установлен с официального сайта производителя, попробуйте удалить его и дать Windows 10 установить стандартные драйверы.
- Если драйвер был автоматически установлен Windows или был предустановлен производителем (и система после этого не менялась), попробуйте скачать и установить последнюю версию драйвера с официального сайта производителя ноутбука или материнской платы (если это ПК).
Заполняемый невыгружаемый пул оперативной памяти в Windows 10 не всегда бывает вызван драйверами именно сетевой карты (хотя чаще всего) и если действия с драйверами сетевых адаптеров и NDU не приносят результата, можно прибегнуть к следующим шагам:
- Установка всех оригинальных драйверов от производителя на ваше оборудование (особенно если на данный момент времени у вас установлены драйверы, автоматически установленные Windows 10).
- Использование утилиты Poolmon из состава Microsoft WDK для определения драйвера, вызывающего утечку памяти.
Как узнать, какой драйвер вызывает утечку памяти в Windows 10 с помощью Poolmon
Выяснить конкретные драйверы, приводящие к тому, что невыгружаемый пул памяти растет можно с помощью инструмента Poolmoon, входящим в состав Windows Driver Kit (WDK), скачать который можно с официального сайта Майкрософт.
- Загрузите WDK для вашей версии Windows 10 (не используйте шаги на предлагаемой странице, относящиеся к установке Windows SDK или Visual Studio, просто найдите пункт «Установите WDK для Windows 10» на странице и запустите установку) с сайта https://developer.microsoft.com/ru-ru/windows/hardware/windows-driver-kit .
- После установки, зайдите в папку с WDK и запустите утилиту Poolmon.exe (по умолчанию утилиты находятся в C: Program Files (x86)Windows Kits 10 Tools ).
- Нажмите латинскую клавишу P (так, чтобы второй столбец содержал только значения Nonp), затем — B (это оставит в списке только записи, использующие невыгружаемый пул и отсортирует их по количеству занимаемого пространства в памяти, т.е. по столбцу Bytes).
- Обратите внимание на значение столбца Tag для занимающей наибольшее количество байт записи.
- Откройте командную строку и введите команду findstr /m /l /s значение_столбца_tag C:WindowsSystem32drivers*.sys
- Вы получите список файлов драйверов, которые могут оказаться причиной проблемы.
Дальнейший путь — выяснить по именам файлов драйверов (с помощью Google, например), к какому оборудованию они относятся и пробовать установить, удалить или откатить в зависимости от ситуации.