Non paged pool windows 10

Одна из распространенных проблем пользователей Windows 10, особенно с сетевыми картами Killer Network (Ethernet и Wireless)— заполняющаяся оперативная память при работе в сети. Обратить на это внимание можно в диспетчере задач на вкладке «Производительность», выбрав RAM. При этом, заполняется невыгружаемый пул памяти.

Проблема в большинстве случаев вызвана неправильной работой сетевых драйверов в сочетании с драйверами монитора использования сети Windows 10 (Network Data Usage, NDU) и достаточно просто решается, о чем и пойдет речь в этой инструкции. В некоторых случаях, причиной утечек памяти могут быть и другие драйверы оборудования. Близкий по теме материал: Что такое память Кэшировано в Windows 10 и как очистить кэшированную память.

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

Наиболее распространенной ситуацией является, когда невыгружаемый пул RAM Windows 10 заполняется при работе в Интернете. Например, легко заметить, как он растет при скачивании большого файла и после этого не очищается.

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

  1. Зайдите в редактор реестра (нажмите клавиши Win+R на клавиатуре, введите regedit и нажмите Enter).
  2. Перейдите к разделу
    HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\Ndu\
  3. Дважды нажмите по параметру с именем «Start» в правой части редактора реестра и задайте значение 4 для него, для отключения монитора использования сети. 
    Исправление проблемы с невыгружаемым пулом в реестре Windows 10

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

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

Если шаги, описанные выше, не помогли, попробуйте следующее:

  • Если драйвер сетевой карты и (или) беспроводного адаптера был установлен с официального сайта производителя, попробуйте удалить его и дать Windows 10 установить стандартные драйверы.
  • Если драйвер был автоматически установлен Windows или был предустановлен производителем (и система после этого не менялась), попробуйте скачать и установить последнюю версию драйвера с официального сайта производителя ноутбука или материнской платы (если это ПК).

Заполняемый невыгружаемый пул оперативной памяти в Windows 10 не всегда бывает вызван драйверами именно сетевой карты (хотя чаще всего) и если действия с драйверами сетевых адаптеров и NDU не приносят результата, можно прибегнуть к следующим шагам:

  1. Установка всех оригинальных драйверов от производителя на ваше оборудование (особенно если на данный момент времени у вас установлены драйверы, автоматически установленные Windows 10).
  2. Использование утилиты Poolmon из состава Microsoft WDK для определения драйвера, вызывающего утечку памяти.

Как узнать, какой драйвер вызывает утечку памяти в Windows 10 с помощью Poolmon

Невыгружаемый пул в диспетчере задач Windows 10

Выяснить конкретные драйверы, приводящие к тому, что невыгружаемый пул памяти растет можно с помощью инструмента Poolmoon, входящим в состав Windows Driver Kit (WDK), скачать который можно с официального сайта Майкрософт.

  1. Загрузите WDK для вашей версии Windows 10 (не используйте шаги на предлагаемой странице, относящиеся к установке Windows SDK или Visual Studio, просто найдите пункт «Установите WDK для Windows 10» на странице и запустите установку) с сайта https://developer.microsoft.com/ru-ru/windows/hardware/windows-driver-kit.
  2. После установки, зайдите в папку с WDK и запустите утилиту Poolmon.exe (по умолчанию утилиты находятся в C:\ Program Files (x86)\Windows Kits\ 10\ Tools\ ).
  3. Нажмите латинскую клавишу P (так, чтобы второй столбец содержал только значения Nonp), затем — B (это оставит в списке только записи, использующие невыгружаемый пул и отсортирует их по количеству занимаемого пространства в памяти, т.е. по столбцу Bytes). 
    Невыгружаемый пул в утилите Poolmon

  4. Обратите внимание на значение столбца Tag для занимающей наибольшее количество байт записи.
  5. Откройте командную строку и введите команду findstr /m /l /s значение_столбца_tag C:\Windows\System32\drivers\*.sys 
    Поиск драйвера, вызывающего утечку памяти

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

Дальнейший путь — выяснить по именам файлов драйверов (с помощью Google, например), к какому оборудованию они относятся и пробовать установить, удалить или откатить в зависимости от ситуации.

На компьютерах и серверах Windows могут возникать проблемы с исчерпанием свободной памяти, вызванной утечкой некого системного драйвера, хранящего свои данные в невыгружаемом пуле памяти системы. Невыгружаемый пул памяти (Non-paged memory) – это данные в оперативной памяти компьютера, используемые ядром и драйверами операционной системой, которая никогда не выгружается на диск (в своп/ файл подкачки), т.е. всегда находится в физической RAM памяти.

Текущий размер невыгружаемого пула памяти можно увидеть в диспетчере задач Windows на вкладке Perfomance (Производительность) в разделе Memory (Память). На скриншоте ниже видно, что практически вся память на сервере занята, и большая часть ее относится к невыгружаемому пулу 4,2 Гб (Non-paged pool / Невыгружаемый пул). В нормальном состоянии размер невыгружаемого пула редко превышает 200-400 Мб. Большой размер невыгружаемого пула часто указывает на наличии утечки памяти в каком-то системном компоненте или драйвере.

Non-paged pool забил всю память компьютера

При утечке памяти в невыгружаемом пуле на сервере, в системном журнале событий появится события:

Event ID: 2019
Source: Srv
Description:
The server was unable to allocate from the system nonpaged pool because the pool was empty

В подавляющем большинстве случаев причиной такой утечки памяти является проблема со сторонними драйверами, установленными в Windows. Как правило, это сетевые драйвера. Обратите внимание, как ведет себя пул при скачивании больших файлов (скорее всего он при этом быстро растет).

Максимальный размер невыгружаемого пула в Windows:

  • Windows x64 до 128 Гб и не более 75% физической памяти
  • Windows x86 до 2 Гб и не более 75% RAM

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

Содержание:

  • Установка последних версий драйверов сетевых адаптеров
  • Отключение драйвера мониторинга сетевой активности Windows
  • Отключение роли Hyper-V
  • Поиск драйвера, вызвавшего утечку памяти с помощью Poolmon

Установка последних версий драйверов сетевых адаптеров

Попробуйте скачать и установить последние версии драйверов ваших сетевых адаптеров с сайта производителя.

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

Отключение драйвера мониторинга сетевой активности Windows

Достаточно часто причиной утечки памяти в невыгружаемый пул является несовместимость драйвера мониторинга сетевой активности (Network Data Usage — NDU, %WinDir%\system32\drivers\Ndu.sys) с драйверами сетевого адаптера компьютера (чаще всего конфликтуют драйвера для сетевых карт Killer Network и MSI). Данный сервис можно отключить без особых потерь функционала Windows.

Службу можно остановить командной:

sc config NDU start= disabled

Либо через реестр:

  1. Откройте редактор реестра regedit.exe
  2. Перейдите в ветку HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\Ndu\
  3. Измените значения параметра Start на 4.

отключение NDU - HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\Ndu\

После внесения изменений нужно перезагрузить компьютер

Отключение роли Hyper-V

В некоторых случаях утечку памяти в невыгружаемый пул вызывает установленная роль Hyper-V. Если эта роль не нужна, рекомендуем отключить ее.

В Windows Server Hyper-V роль можно отключить командой:

Remove-WindowsFeature -Name Hyper-V

Команда для Windows 10:

Disable-WindowsOptionalFeature -Online -FeatureName Microsoft-Hyper-V-All

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

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

Для этого нам понадобится консольная утилита Poolmoon.exe, входящая в комплект разработки Windows Driver Kit (WDK). Скачайте с сайта Microsoft и установите WDK для вашей версии Windows и запустите утилиту Poolmon.exe (в WDK для Windows 10 утилита находится в каталоге
C:\Program Files (x86)\Windows Kits\10\Tools\
).

После запуска утилиты Poolman.exe нажмите клавиши P. Во втором столбце останутся теги процессов, которые используют невыгружаемую память (атрибут Nonp) Затем нажмите клавишу B, чтобы выполнить сортировку по столбцу Bytes.

Poolmoon - спсико тегов в невыгружаемом пуле памяти

В левом столбце указаны теги драйверов. Ваша задача определить файл драйвера, использующего этот тег. В нашем примере видно, что больше всего RAM в невыгружаемом пуле используют драйвера с тегами Nr22, ConT и smNp.

Вы должны проверить драйвера на наличие найденных тегов с помощью утилиты strings.exe (от Sysinternals), с помощью встроенной команды findstr или с помощью PowerShell.

Следующие команды должны найти файлы драйверов, связанные с найденными вами тегами. данными процессами можно командами:

findstr /m /l /s Nr22 %Systemroot%\System32\drivers\*.sys
findstr /m /l /s ConT %Systemroot%\System32\drivers\*.sys
findstr /m /l /s smNp %Systemroot%\System32\drivers\*.sys

Также можно воспользоваться PowerShell:

Set-Location "C:\Windows\System32\drivers"
Select-String -Path *.sys -Pattern "Nr22" -CaseSensitive | Select-Object FileName -Unique
Select-String -Path *.sys -Pattern "Py28" -CaseSensitive | Select-Object FileName -Unique
Select-String -Path *.sys -Pattern "Ne40" -CaseSensitive | Select-Object FileName –Unique

Вы можете отобразить файлы драйверов непосредственно в poolmon.exe. Для этого убедитесь, что в каталоге утилиты находится файл pooltag.txt. Его можно скопировать из каталога установки WDK или найти в GitHub. Запустите утилиту:

Poolmon /g

poolmon показать имя драйвера использующего невыгружаемый пул

Обратите внимание, что имя драйвера теперь отображается в столбце Mapped_driver.

Если поиск не дал результатов, проверьте возможно утечка памяти вызвана не системным процессом. Запустите Task Manager, перейдите на вкладку Details, добавьте колонку NP Pool и найдите процессы с большим размером памяти в невыгружаемом пуле.

показывать размер невыгружаемого пула процессов в taskmanager Windows 10

Таким образом, мы получили список файлов драйверов, которые могут оказаться причиной проблемы. Теперь по именам файлов нужно определить, к каким драйверам и системным компонентам они относятся. Для этого можно воспользоваться утилитой sigcheck от Sysinternals.

sigcheck C:\Windows\System32\drivers\rdyboost.sys

Утилита возвращает имя драйвера, его свойства и информацию о версии.

sigcheck

Теперь можно попытаться удалить/обновить/переустановить проблемный драйвер или службу.

Если утечка памяти привела к BSOD, вы можете определить проблемный драйвер по файл дампа памяти.

  1. Загрузите дамп памяти в отладчик Windbg;
  2. Выполните команду:
    !vm
  3. Если значение NonPagedPool Usage больше чем Max, это говорит о том, что невыгружаемый пул исчерпан;
  4. Проверьте содержимое пула командой (результаты будут отсортированы по использованию невыгружаемого пула):
    !poolused 2
  5. После получение тега драйвера найдите файл с помощью findstr или strings как описано выше.

Данная инструкция применима как для Windows Server 2019/2016/2012R2, так и для клиентских Windows 10, 8.1.

Все способы:

  • Способ 1: Монитор использования сети
  • Способ 2: Удаление или обновление драйверов
  • Способ 3: Отключение Hyper-V
  • Способ 4: Утилита Poolmon
  • Вопросы и ответы: 0

Способ 1: Монитор использования сети

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

  1. Запустите «Редактор реестра», для чего выполните в вызванном нажатием Win + R диалоговом окошке команду regedit.
  2. Как исправить невыгружаемый пул в Windows 10-1

  3. Разверните ветку HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\Ndu, найдите справа параметр с названием «Srart» и откройте окошко редактирования его значения двойным кликом ЛКМ.
  4. Как исправить невыгружаемый пул в Windows 10-2

  5. Установите в качестве значения параметра «4», сохраните настройки, закройте «Редактор реестра» и перезагрузите компьютер.

Также для остановки монитора сети можно использовать «Командную строку», выполнив команду sc config NDU start= disabled.

Как исправить невыгружаемый пул в Windows 10-4

Способ 2: Удаление или обновление драйверов

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

  1. Откройте «Диспетчер устройств» из контекстного меню «Пуск».
  2. Как исправить невыгружаемый пул в Windows 10-5

  3. Разверните пункт «Сетевые адаптеры», кликните правой кнопкой мыши по рабочему сетевому устройству и выберите в меню «Свойства».
  4. Как исправить невыгружаемый пул в Windows 10-6

  5. Переключитесь на вкладку «Драйвер» и выберите нужную опцию («Обновить драйвер» или «Откатить»), после чего проследуйте указаниям мастера.
  6. Как исправить невыгружаемый пул в Windows 10-7

Более подробные инструкции по установке, обновлению и удалению драйверов можно получить по ссылкам ниже.

Подробнее:
Программы для обновления драйверов
Программы для удаления драйверов
Установка драйвера для сетевого адаптера в Windows 10

Способ 3: Отключение Hyper-V

Увеличение невыгружаемого пула может быть вызвано неправильной работой компонента виртуализации Hyper-V. Чтобы исключить этот вариант, отключите компонент и понаблюдайте за поведением системы.

  1. Откройте «PowerShell» от имени администратора из контекстного меню кнопки «Пуск» .
  2. Как исправить невыгружаемый пул в Windows 10-8

  3. Выполните команду Disable-WindowsOptionalFeature -Online -FeatureName Microsoft-Hyper-V-All или Disable-WindowsOptionalFeature -Online -FeatureName Microsoft-Hyper-V-Hypervisor для отключения компонента виртуализации.
  4. Как исправить невыгружаемый пул в Windows 10-9

После выполнения команды перезагрузите компьютер.

Способ 4: Утилита Poolmon

Вызвать утечку памяти в невыгружаемый пул может не только сетевой драйвер, но и любой другой драйвер. Чтобы не обновлять/заменять все драйверы, можно попробовать выявить те из них, которые привели к появлению проблемы. Для этих целей понадобится утилита Poolmon, входящая в состав платформы Microsoft WDK.

Скачать Microsoft WDK с официального сайта

  1. Скачайте пакет Microsoft WDK соответствующей версии и установите.
  2. Зайдите в каталог C:\Program Files (x86)Windows Kits\10\Tools\x86 (или x64), найдите там утилиту Poolmon и запустите ее от имени администратора.
  3. Как исправить невыгружаемый пул в Windows 10-10

  4. Когда появится окно утилиты, нажмите английскую клавишу P, а затем B. В результате в списке будут оставлены только те записи, которые используют невыгружаемый пул. Запишите название тех из них, которые занимают больше всего байт в памяти. Указаны названия в первом столбце «Tag». Для сортировки записей по размеру памяти используйте столбец «Bytes».
  5. Как исправить невыгружаемый пул в Windows 10-11

  6. Откройте от имени администратора классическую «Командную строку».
  7. Как исправить невыгружаемый пул в Windows 10-12

  8. Перейдите командой cd drivers в расположение C:\Windows\System32\drivers.
  9. Как исправить невыгружаемый пул в Windows 10-13

  10. Выполните команду findstr /m /l /s Name *.sys, где Name – название записи, полученной в результате сортировки в окне Poolmon.
  11. Как исправить невыгружаемый пул в Windows 10-14

В итоге вы получите список драйверов, которые с большей долей вероятности являются источником проблемы. Далее вам нужно принять решение, что именно делать с этими драйверами: удалять, обновлять или откатывать.

Наша группа в TelegramПолезные советы и помощь

Introduction

Unexplained behavior in a Windows 10 computer can point to a non-paged pool memory leak. When Windows allocates memory from a pool of memory known as non-paged pool, this memory is available to the system at all times, regardless of how much physical memory is currently installed or how much is being used. If there is a memory leak, the computer can become unresponsive or slow down. In this guide, we’ll show you how to identify and fix a non-paged pool memory leak in Windows 10.

What is a Non-Paged Pool Memory Leak?

The non-paged pool is a region of memory in Windows 10 that holds all requests made by processes running on the system. It stores data that is critical for the system’s stability, such as process and device-driver information. Since this data is so vital to the proper functioning of Windows 10, it does not get paged out to virtual memory. Thus the name non-paged pool.

When a non-paged pool leak occurs, the computer suffers from a lack of non-paged pool memory. This causes the system to be slow or to crash. It can also affect the device’s performance.

How to Identify a Non-Paged Pool Memory Leak

The most common symptom of a non-paged pool memory leak is a decrease in computer speed over time. Other symptoms include the computer becoming unresponsive, frequent system crashes, or error messages appearing on the user’s screen.

One of the best ways to determine if a non-paged pool memory leak is the source of the problem is to use a program called PoolMon which is included in Windows 10. To use PoolMon to check for a non-paged pool memory leak, follow these steps:

  1. Press the “Windows” key + “R” to open the Run box.
  2. Type “poolmon.exe” and press “Enter”.
  3. In PoolMon, click “File > Select Columns”.
  4. To filter the information, select “Nonp” and “Paged” from the list.
  5. Check the “Pool Usage” column and look for the biggest values.
  6. If the “Nonp” value is very large compared to the “Paged” value, you probably have a non-paged pool memory leak.

How to Fix a Non-Paged Pool Memory Leak

Once you’ve identified a non-paged pool memory leak, you can use the following steps to try to fix it:

Test the computer’s RAM.

  • Test the RAM with a memory tester like Memtest86+. If the RAM is faulty, it could be causing the non-paged pool memory leak.

Check for viruses and malware.

  • Malware can cause a non-paged pool memory leak. Check your system for viruses and other malicious software with a tool like MalwareBytes.

Update Windows 10.

  • A non-paged pool memory leak can also be caused by outdated drivers or software. Make sure Windows 10 is updated to the latest version and all your drivers are up to date.

Remove or update drivers.

  • If you’ve identified a rogue driver causing the memory leak, you can try to update it or completely remove it.

Use a third-party memory tool.

  • If none of the above methods worked, you can try using a third-party tool like Memopt which is designed to help identify and fix memory leaks.

Frequently Asked Questions (FAQ)

What is a non-paged pool memory leak?

A non-paged pool memory leak is a decrease in the available memory on a Windows 10 computer caused by a problem in the non-paged pool — a region of memory set aside for storing data that the system needs quickly, such as process and device-driver information.

What are the symptoms of a non-paged pool memory leak?

The most common symptom of a non-paged pool memory leak is a decrease in computer speed over time. Other symptoms include the computer becoming unresponsive, frequent system crashes, or error messages appearing on the user’s screen.

What is PoolMon?

PoolMon is a program included in Windows 10 that can be used to identify if a non-paged pool memory leak is the source of a problem in a Windows 10 computer.

How do I use PoolMon to check for a non-paged pool memory leak?

To use PoolMon to check for a non-paged pool memory leak, follow these steps:

  1. Press the “Windows” key + “R” to open the Run box.
  2. Type “poolmon.exe” and press “Enter”.
  3. In PoolMon, click “File > Select Columns”.
  4. To filter the information, select “Nonp” and “Paged” from the list.
  5. Check the “Pool Usage” column and look for the biggest values.
  6. If the “Nonp” value is very large compared to the “Paged” value, you probably have a non-paged pool memory leak.

How can I fix a non-paged pool memory leak?

Once you’ve identified a non-paged pool memory leak, you can use the following steps to try to fix it:

  1. Test the computer’s RAM with a memory tester like Memtest86+.
  2. Check for viruses and malware with a tool like MalwareBytes.
  3. Update Windows 10 to the latest version and make sure all your drivers are up to date.
  4. Remove or update drivers that might be causing the memory leak.
  5. Use a third-party memory tool like Memopt.

First off, bookmark this page. Because when this will start happening again in a year or so, you will have forgotten what the fix was. Windows 8 and 10 have a mind of their own regarding this issue, and might re-enable the things we disable in this tutorial on its own.

The issue…

Out of nowhere you will get a warning message saying that Windows has ran out of memory, and it has to close down some programs in order to continue working. Looking at the task manager however, the physical memory is usually far from full, and no running processes seem to be consuming a lot of memory.

Upon closer inspection however, you will notice the “committed” memory is maxed out under the Performance tab of the task manager.

I’ve personally had this happen on my laptop first, and then when it started happening on my desktop too, a while later, I had forgotten what the fix was.

The solution(s)

#1 – Disable the Windows Network Data Usage Monitoring Driver

On my laptop, the memory would fill up proportionally to the amount of data I was sending/receiving over the network, which was a big hint towards the solution. Apparently, the Windows Network Data Usage Monitoring Driver was causing this. What this service does is quite apparent from its name. Apparently it is not entirely compatible with some network adapters/drivers and starts causing this issue.

To disable the service:

  1. Press Windows key + R
  2. Type regedit and press OK. Confirm any security warnings.
  3. In the regedit window, navigate to HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\Ndu\ and double-click the Start value.
  4. Set the value to 4, click OK and reboot your computer.

disable NDU

It might be a good idea to update the drivers of your network adapter while you’re at it. Another good idea might be disabling Windows’ automatic driver updates, which may revert the installation of your new driver. An article on how to do that later.

#2 – Disable Hyper-V

Another possible offender is the Hyper-V service. Hyper-V allows you to create a “virtual machine” to run a different operating system without having to use another physical computer. It is often enabled by default on the more advanced versions of Windows 8/10, but is probably unnecessary if you don’t work with virtual machines.

To disable it:

  1. Press the Start button
  2. Type turn windows features on or off and select the item that appears.
  3. If Hyper-V is ticked, remove the tick, and confirm with OK

Disabling Hyper-V

#3 – Disable Samsung RAPID mode

If you have a Samsung SSD in your computer, this might be a possible solution for you. Both my laptop and desktop have one, and someone recommended me to disable the Samsung RAPID mode. RAPID mode caches commonly used data based on several factors, to increase read-performance.

To disable it:

  1. Press Start
  2. Type Magician and open the Samsung Magician software
  3. Go to the RAPID mode tab, and disable it if it is enabled.

Disable Samsung Magician

Понравилась статья? Поделить с друзьями:
0 0 голоса
Рейтинг статьи
Подписаться
Уведомить о
guest

0 комментариев
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии
  • Radeon 3850 driver windows xp
  • Windows 10 turn off sleep
  • Установить время включения компьютера windows 10
  • Плоский звук windows 10
  • Как проецировать с телефона на ноутбук windows 10