Как очистить невыгружаемый пул


Невыгружаемый пул занимает память Windows 10 — решение

&nbsp windows

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

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

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

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

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

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

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

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

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

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

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

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

Выяснить конкретные драйверы, приводящие к тому, что невыгружаемый пул памяти растет можно с помощью инструмента 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). 
  4. Обратите внимание на значение столбца Tag для занимающей наибольшее количество байт записи.
  5. Откройте командную строку и введите команду findstr /m /l /s значение_столбца_tag C:\Windows\System32\drivers\*.sys 
  6. Вы получите список файлов драйверов, которые могут оказаться причиной проблемы.

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

А вдруг и это будет интересно:

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

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

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

Что такое невыгружаемый пул памяти

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

Эта проблема появляется при активном использовании Интернета с включенным управлением полосой пропускания, происходит утечка памяти на материнских платах с сетевой картой от Killer. Не важно интегрированная это или дискретная сетевая карта. Драйвер netio.sys может забрать хоть всю оперативную память в системе. После перезагрузки компьютера по новой все происходило.

Возможно несколько вариантов устранения проблемы. Я же использовал первый или второй способ для отключения утечки памяти. Но не стоит исключать вариант обновления драйверов сетевой карты. Так как сейчас производители уже выпустили обновленные версии драйверов, автоматически исправляющие ошибки с невыгружаемым пулом памяти Windows 10.

Как исправить невыгружаемый пул оперативной памяти

Службы

Первый способ заключается в отключении службы мониторинга сетевой активности (Windows Network Data Usage Monitoring Driver) в Windows 10. Выполнением буквально одной команды проблема с невыгружаемым пулом памяти будет полностью решена.

  1. Откроем окно Выполнить нажатием на клавиши Win+R.
  2. Вводим команду: sc config NDU start= disabled и нажимаем кнопку ОК.

Реестр

Перед внесением изменений в реестр рекомендуется создать резервную копию реестра Windows 10. Это предоставит возможность в любой момент при необходимости восстановить любые изменения в реестре.

  1. Нажимаем Win+R и выполняем команду regedit, чтобы открыть редактор реестра.
  2. Перейдем по пути HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Ndu.
  3. Значение параметра Start изменяем на 4.

Для применения изменений выполните перезагрузку компьютера. После включения компьютера память будет освобождаться в автоматическом режиме. Больше утечек оперативной памяти из-за не будет. Смотрите также инструкцию: Как очистить оперативную память на Windows 10.

Драйвера

В некоторых случаях исправить утечки оперативной памяти помогает настройка программного обеспечения к сетевой карте. При этом пользователь теряет весь функционал программы Killer Network Manager.

  • Установите Killer Network Manager и отключить Управление пропускной способностью в настройках менеджера.
  • Установить драйвера без программы управления возможностями сетевой карты Killer Network Manager.

Сейчас уже с уверенностью можно сказать, что достаточно будет просто обновить драйвера производителя. Сегодня вместо программы Killer Network Manager пользователи получают обновленное средство управления Killer Control Center. В котором разработчики уже решили предыдущие ошибки и проблемы пользователей.

Выводы

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

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

Невыгружаемый пул занял всю память в Windows, что делать?

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

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

po

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

The server was unable to allocate from the system Non-Paged pool because the pool was empty

В подавляющем большинстве случаев причиной описанной утечки памяти является проблема со сторонними драйверами, установленными в системе. Как правило, это сетевые драйвера. Обратите внимание, как ведет себя пул при скачивании больших файлов (скорее всего он при этом быстро растет вплоть до 128 Гб или 75% физической памяти в x64 системах). Для очистки пула помогает только перезагрузка, и, если для домашнего компьютера это еще может быть приемлемо, на круглосуточно работающем сервере желательно найти нормальное решение.

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

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

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

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

Достаточно часто причиной утечки памяти в невыгружаемый пул является несовместимость драйвера мониторинга сетевой активности (Network Data Usage — NDU) с драйверами сетевого адаптера компьютера. Данный сервис можно отключить без особых потерей функционала Windows.

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

sc config NDU start= disabled

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

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

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

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

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

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

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

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

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

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

Найти конкретные файлы драйверов, связанные с данными процессами можно командами:

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

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

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

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

Теперь можно попытаться удалить/обновить/переустановить проблемный драйвер или службу.
Данная инструкция применима как для Windows Server 2008 — 2016, так и для клиентских Windows 10, 8 и 7.

Что делать, если невыгружаемый пул в Windows 10 занимает всю память

Просмотр запущенных приложений в Диспетчере задач — это первое, с чего всякий пользователь начинает поиск причин медленной работы компьютера. И вроде бы и с процессами всё нормально, и с дисками, но на вкладке «Производительность», если выбрать «Память», можно увидеть, что она практически вся занята и уходит в невыгружаемый пул памяти. Это означает, что имеет место утечка памяти и неважно какой объем ОЗУ имеется на ПК, в невыгружаемый пул она может уйти вся без остатка.

С этой проблемой чаще всего приходится сталкиваться пользователям Windows 10, особенно тем из них, у кого установлены сетевые карты Killer Network. Проявляется она чаще всего заполнением невыгружаемого пула во время скачивания больших файлов из интернета.

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

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

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Ndu

Найдите в правой колонке окна редактора DWORD-параметр Start и установите в качестве его значения 4.

Эту же настройку следует проверить в ключе:

HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\Ndu

Вместо применения твика реестра можно воспользоваться командной строкой или диалоговым окошком Run. Откройте консоль от имени администратора и выполните такую команду:

sc config NDU start= disabled

Результат будет аналогичным.

В обеих случаях для вступления новых настроек в силу потребуется перезагрузка компьютера. После этого утечка в невыгружаемый пул памяти должна прекратиться. Это самый простой и эффективный способ, но есть также и другие варианты. Например, можно установить приложение Killer Network Manager, найти в его настройках опцию управления пропускной способностью и отключить её.

Если драйвера для сетевой карты скачивались с сайта производителя, попробуйте их удалить и дать Windows 10 установить свои драйвера. Если проблема наблюдается с драйверами Microsoft, поступаем наоборот, скачиваем для карты Killer Network драйвера с официального ресурса производителя и устанавливаем их. Выше упоминалось, что утечку памяти могут вызывать не только сетевые драйвера. Определить проблемный драйвер можно с помощью утилиты Poolmon, но для этого потребуется установить набор инструментов разработки драйверов для Windows.

Скачав WDK для вашей версии Windows 10 с официальной страницы Microsoft.

Перейдите в Проводнике по адресу C:\Program Files (x86)Windows Kits\10\Tools\x86 (или x64) и запустите оттуда исполняемый файл утилиты Poolmon.exe.

Нажмите сначала латинскую клавишу P, а затем B.

Это действие оставит и отсортирует только те записи, которые используют невыгружаемый пул (Type Nonp). Найдите в списке элементы, занимающие больше всего байт в памяти и запишите их имена (столбец tag).

Теперь откройте командную строку от имени администратора, перейдите в расположение C:\Windows\System32\drivers и выполните команду:

findstr /m /l /s Name *.sys

Где Name — имя, то есть тэг записи.

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

WDK: developer.microsoft.com/ru-ru/windows/hardware/windows-driver-kit

Невыгружаемый пул занимает память Windows 10

Содержание статьи

Невыгружаемый пул занимает память Windows 10 — решение

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

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

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

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

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

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

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

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

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

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

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

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

Выяснить конкретные драйверы, приводящие к тому, что невыгружаемый пул памяти растет можно с помощью инструмента 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).
  4. Обратите внимание на значение столбца Tag для занимающей наибольшее количество байт записи.
  5. Откройте командную строку и введите команду findstr /m /l /s значение_столбца_tag C:WindowsSystem32drivers*.sys
  6. Вы получите список файлов драйверов, которые могут оказаться причиной проблемы.

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

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

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

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

Что такое невыгружаемый пул памяти

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

Эта проблема появляется при активном использовании Интернета с включенным управлением полосой пропускания, происходит утечка памяти на материнских платах с сетевой картой от Killer. Не важно интегрированная это или дискретная сетевая карта. Драйвер netio.sys может забрать хоть всю оперативную память в системе. После перезагрузки компьютера по новой все происходило.

Возможно несколько вариантов устранения проблемы. Я же использовал первый или второй способ для отключения утечки памяти. Но не стоит исключать вариант обновления драйверов сетевой карты. Так как сейчас производители уже выпустили обновленные версии драйверов, автоматически исправляющие ошибки с невыгружаемым пулом памяти Windows 10.

Как исправить невыгружаемый пул оперативной памяти

Службы

Первый способ заключается в отключении службы мониторинга сетевой активности (Windows Network Data Usage Monitoring Driver) в Windows 10. Выполнением буквально одной команды проблема с невыгружаемым пулом памяти будет полностью решена.

  1. Откроем окно Выполнить нажатием на клавиши Win+R.
  2. Вводим команду: sc config NDU start= disabled и нажимаем кнопку ОК.

Реестр

Перед внесением изменений в реестр рекомендуется создать резервную копию реестра Windows 10. Это предоставит возможность в любой момент при необходимости восстановить любые изменения в реестре.

  1. Нажимаем Win+R и выполняем команду regedit, чтобы открыть редактор реестра.
  2. Перейдем по пути HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesNdu.
  3. Значение параметра Start изменяем на 4.

Для применения изменений выполните перезагрузку компьютера. После включения компьютера память будет освобождаться в автоматическом режиме. Больше утечек оперативной памяти из-за не будет. Смотрите также инструкцию: Как очистить оперативную память на Windows 10.

Драйвера

В некоторых случаях исправить утечки оперативной памяти помогает настройка программного обеспечения к сетевой карте. При этом пользователь теряет весь функционал программы Killer Network Manager.

  • Установите Killer Network Manager и отключить Управление пропускной способностью в настройках менеджера.
  • Установить драйвера без программы управления возможностями сетевой карты Killer Network Manager.

Сейчас уже с уверенностью можно сказать, что достаточно будет просто обновить драйвера производителя. Сегодня вместо программы Killer Network Manager пользователи получают обновленное средство управления Killer Control Center. В котором разработчики уже решили предыдущие ошибки и проблемы пользователей.

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

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

Утечка памяти Windows 10, решение проблемы (Процесс System жрёт память)

Дубликаты не найдены

Не слушайте его.

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

Это ускоряет запуск и работу приложений.

Если комп тормозит, и память утекает — причина явно в чём-то другом и отключение суперфетч не лучшая идея.

Попробуйте запустить любое приложение, которое активно использует оперативку на Win 10. Потом посмотрите сколько будет «весить» процесс System.

P.S. Приложения и ОС «живут» на SSD, а документы и прочий хлам на HDD.

Запускаю. Тормозов не наблюдаю. Еще с семерки вроде уже было пора отвыкнуть смотреть на свободную память.

ПС. У вас процесс не потребляет процессорного времени. А торомоза надо искать в ГТА.

Да мне пофигу сколько оно там чего весит.

Жрёт 99.99% оперативы?

Да вообще фиолетово, главное что бы оно при этом не лагало.

Выяснилось, что процесс System отжирал столько же памяти, сколько и остальные приложения. Тем самым заставляя обильно использовать файл подкачки (на 8 Гб оперативы).

Вы скурсе, что эта память отдается как только в системе появляется потребитель которому она нужна?

А автору — проверьте свой ssd. Возможно подыхает.

И вот сюда загляните, раз уж хочется узнать как оно там внутри https://technet.microsoft.com/en-us/magazine/2007.03.vistakernel.aspx

Выяснилось, что процесс System отжирал столько же памяти, сколько и остальные приложения. Тем самым заставляя обильно использовать файл подкачки (на 8 Гб оперативы).

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

Топик стартер конечно поступил не разобравшись — полностью отрубив кэш, а можно было его ограничить, но НИЧЕГО страшного от выключения кэша с системой не произойдет. Долгое время даже существовало поверье что на SSD необходимо выключать кэш. Но набежали мегаспецалисты которые минусуют за отключение кэша считая этот элемент видимо самым важным в системе.

Там в статье написано: если производительность ssd позволяет — то отрубается суперфетч, редибуст и тд. Для этого достаточно прогнать тест производительности еще раз.

То что у вас ssd не гарантирует, что он быстрый. Особенно ели это старый контроллер.

какая разница. ну нет у меня «эталонной производительности» — выключение кэша руками даст какие то доли секунды (максимум несколько секунд) замедления запуска программ, и то при запуске их 2й и более раз — на выходе получив минимум занятой оперативки. Тут еще надо посмотреть что хуже будет, программа в свапе на ссд что быстрее гробит его жизнь или кэш. Тоже самое и редибуст — юзал я ссд в редибуст режиме к обычному винту, потом как системный диск. Имхо второе было куда эффективнее в плане быстродействия и редибуст скорее бесполезная фича пригодная для отдельных случаев.

Запуск софта не с ssd?

У меня процесс запущен и все отлично работает. Комп не самый новый — 4 год пошел. Но деградации производительности от ос к ос нет. Поэтому в первую очередь — смотрите железо, а не бездумно лазить в реестр и писать статью, особенно для неопытных пользователей.

с ссд конечно. 240 гигов хватает под систему прикладное за глаза и обычно больше 100 гигов свободно. а обычный ХД под фильмы, фотки и прочее.

Я тоже не запариваюсь, правда пока второй год с винтом на 240, до этого был 32 сначала редибуст (ноут так по умолчанию настроен), потом системный (решил попробовать) — тогда и решил купить большой ссд.

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

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

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

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

po

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

The server was unable to allocate from the system Non-Paged pool because the pool was empty

В подавляющем большинстве случаев причиной описанной утечки памяти является проблема со сторонними драйверами, установленными в системе. Как правило, это сетевые драйвера. Обратите внимание, как ведет себя пул при скачивании больших файлов (скорее всего он при этом быстро растет вплоть до 128 Гб или 75% физической памяти в x64 системах). Для очистки пула помогает только перезагрузка, и, если для домашнего компьютера это еще может быть приемлемо, на круглосуточно работающем сервере желательно найти нормальное решение.

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

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

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

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

Достаточно часто причиной утечки памяти в невыгружаемый пул является несовместимость драйвера мониторинга сетевой активности (Network Data Usage — NDU) с драйверами сетевого адаптера компьютера. Данный сервис можно отключить без особых потерей функционала Windows.

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

sc config NDU start= disabled

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

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

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

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

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

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

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

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

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

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

Найти конкретные файлы драйверов, связанные с данными процессами можно командами:

findstr /m /l /s Nr22 %Systemroot%System32drivers*.sys
findstr /m /l /s ConT %Systemroot%System32drivers*.sys
findstr /m /l /s smNp %Systemroot%System32drivers*.sys

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

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

Теперь можно попытаться удалить/обновить/переустановить проблемный драйвер или службу.
Данная инструкция применима как для Windows Server 2008 — 2016, так и для клиентских Windows 10, 8 и 7.

Узел службы локальная система грузит диск и процессор

При просмотре фоновых программ в Диспетчере задач Windows 10 замечаем высокую активность процесса «Узел службы: локальная система», который грузит диск и процессор. По данным пользователей, нагрузка на ЦП достигает почти 90%, а использование дискового накопителя превышает иногда отметку 70 МБ/с.

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

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

Отключение Superfetch

Для входа в системные службы выполните команду services.msc из командного интерпретатора (Win + R).

Найдите в списке Superfetch, щелкните на ней правой кнопкой мыши и выберите Свойства. Нажмите на кнопку «Остановить», затем переключите тип запуска на значение «Отключена». Сохраните изменения нажатием на «Применить».

После перезагрузки компьютера проверьте интенсивность использования ресурсов процессом «Узел службы: локальная система», грузит ли он диск и процессор.

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

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

Откройте Редактор реестра командой regedit, запущенной из окна «Выполнить» (Win + R).

На левой панели перейдите в следующий раздел:

HKEY_LOCAL_MACHINE — SYSTEM — ControlSet001 — Services

Найдите и щелкните на раздел Ndu. С правой стороны окна дважды кликните на параметр Start. Измените его значение на 4. Это позволит очистить пул памяти. Щелкните на «ОК» и закройте Редактор реестра.

После перезагрузки ПК «Узел службы: локальная система (ограничение сети)» не должен грузить диск и ЦП.

Запуск средства проверки целостности системы

Иногда интенсивное использование ресурсов вызвано повреждением файлов узла службы локальной системы. Воспользуемся утилитами SFC и DISM для проверки целостности системы.

Наберите в окне системного поиска cmd и нажмите под найденным результатом на ссылку «Запуск от имени администратора».

В консоли запустите команду:

sfc /scannow

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

Dism /Online /Cleanup-Image /RestoreHealth

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

Отключение процессов службы

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

Откройте Диспетчер задач совместным нажатием Ctrl + Shift + Del.

Перейдите на «Узел службы: локальная система», дважды щелкните на нем, чтобы отобразились работающие процессы. Это Центр обновления Windows и Update Orchestrator Service. Кликните на каждой и выберите «Остановить».

Когда отобразится запрос на подтверждение, установите флажок отказаться от несохраненных данных и завершить работу.

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

Выполнение чистой загрузки

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

Откройте конфигурацию системы командой msconfig, запущенной из окна интерпретатора (Win + R).

Перейдите на вкладку «Службы», установите флажок «Не отображать службы Майкрософт» и нажмите на кнопку «Отключить все». Подтвердите изменения на «ОК».

Затем на вкладке «Автозагрузка» кликните на ссылку «Открыть Диспетчер задач».

Кликните на каждое приложение со значением «Включено» и выберите опцию «Отключить». После перезапустите компьютер.

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

Устранение ошибок невыгружаемого и выгружаемого пула в Windows

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

В ходе расследования мы обнаружили, что непосредственно перед сбоем серверы регистрировали событие 2019 в системном журнале - « Серверу не удалось выделить из системного невыгружаемого пула, поскольку пул был пуст ».

Рисунок 1 - Событие 2019 г.

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

О невыгружаемом пуле

Невыгружаемый пул - это память, которая всегда находится в физической памяти и никогда не выгружается.Он используется ядром, а также драйверами устройств, установленными в системе, для хранения данных, к которым можно получить доступ в ситуациях, когда сбои страниц недопустимы. Объем памяти, выделяемой невыгружаемому пулу, варьируется и определяется в зависимости от операционной системы, архитектуры процессора и размера физической памяти. Например, 32-разрядные операционные системы с меньшим адресным пространством имеют более низкие пределы:

  • 32-разрядная версия Windows Server 2003 с 2 ГБ или более ОЗУ будет иметь ограничение невыгружаемого пула 256 МБ
  • 32-разрядная версия Windows Server 2008 будет иметь ограничение невыгружаемого пула в размере 2 ГБ или чуть более 75% физической памяти, в зависимости от того, что меньше

64-битные операционные системы с гораздо большим адресным пространством имеют более высокие ограничения:

  • 64-разрядная версия Windows Server 2003 будет иметь невыгружаемый пул объемом 128 ГБ или 40% физической памяти, в зависимости от того, что меньше
  • 64-битная Windows Server 2008 (или 2008 R2) будет иметь ограничение невыгружаемого пула 128 ГБ или чуть более 75% физической памяти, в зависимости от того, что меньше

Данные о размере пула взяты из книги Марка Руссиновича и Дэвида Соломона «Внутреннее устройство Windows, 5-е издание» и записи в блоге Марка Руссиновича « Расширьте пределы Windows: выгружаемый и невыгружаемый пул ».

Один из способов узнать предел невыгружаемого пула в конкретной системе - это установить инструменты отладки для Windows, а затем использовать Sysinternals Process Explorer для отображения размера пула. (Инструменты отладки необходимы для обеспечения доступа к отладочным символам.)

После загрузки и установки инструментов запустите Process Explorer и нажмите Options -> Symbol Configuration , укажите его на файл dbghelp.dll , установленный с инструментами отладки, и настройте сервер символов Microsoft в качестве пути к файлу символов.

Рисунок 2 - Конфигурация символа обозревателя процессов

Затем размер невыгружаемого пула можно найти в диалоговом окне «Информация о системе» (щелкните View -> System Information или нажмите Ctrl + I ):

Рисунок 3 - Распределение невыгружаемого пула и ограничение на 32-битной Windows Server 2003 с 1 ГБ ОЗУ

Вернуться к проблеме

Мы отслеживали использование памяти в одной из постоянно сбойных систем, включая счетчик производительности для выделения невыгружаемого пула - Память \ невыгружаемый пул байтов .Оранжевая линия на рисунке 4 показывает использование невыгружаемого пула, а график показывает, что использование неуклонно растет с течением времени, а затем резко сокращается при каждой перезагрузке системы.

Рисунок 4 - Использование памяти во времени

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

Инструмент для этой работы - монитор пула памяти, poolmon.exe , который включен в состав средств поддержки Windows на компакт-диске Windows Server 2003, или его можно загрузить из центра загрузки Microsoft как часть пакета средств поддержки Windows Server 2003. Poolmon отображает объем используемой памяти пула (как выгружаемой, так и невыгружаемой), все из которых классифицируются тегом пула, который обычно представляет собой четырехсимвольную строку, используемую при вызове API ядра для выделения памяти пула.

После запуска poolmon нажмите клавишу « p » для фильтрации выгружаемого или невыгружаемого пула, клавишу « b » для сортировки вывода по байтам или клавишу « d » для сортировки по разнице между пулами выделения и освобождение пула.Если для вывода задано невыгружаемое и отсортированное по байтам, отображение может выглядеть примерно так:

Рисунок 5 - Poolmon.exe

Верхняя строка выходных данных показывает, что тег « SbAp » произвел 2187628 выделений из 56 байтов и не освободил ни одного освобождения, что привело к использованию невыгружаемого пула 122 507 168 байтов - безусловно, самый большой потребитель в системе, ответственный за более 60% использования бассейна . Это похоже на вероятную причину утечки памяти.

Теперь, когда мы знаем тег, который ищем, нам нужно выяснить, какой драйвер устройства его использует, и есть несколько способов сделать это. Если тег используется компонентом ядра или драйвером и установлены средства отладки для Windows, то этот тег будет указан в файле triage \ pooltag.txt , расположенном в папке инструментов отладки. Если тега нет в файле pooltag.txt, нам нужно найти его с помощью утилиты Sysinternals ’Strings, strings.exe , чтобы выследить его.Поскольку тег хранится внутри файла драйвера, а большинство файлов драйверов находится в % SystemRoot% \ System32 \ drivers , мы можем легко использовать strings.exe для быстрого поиска тега во всех файлах. Итак, поиск по тегу «SbAp» дал один файл драйвера: klif.sys .

Рисунок 6. Использование strings.exe для поиска драйвера

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

Следует иметь в виду, что тот же метод также может использоваться для устранения проблем с выгружаемым пулом, который будет представлен как событие с идентификатором 2020 с текстом « Сервер не смог выделить из системного выгружаемого пула, поскольку пул был пустой “. Единственное отличие заключается в использовании poolmon для отображения выгружаемого пула вместо невыгружаемого пула.

Базовый процесс в обоих случаях:

  • Используйте сообщение журнала событий, чтобы узнать, сталкиваетесь ли вы с проблемой выгружаемого или невыгружаемого пула.
  • Используйте poolmon.exe , чтобы найти ошибочный тег
  • Используйте pooltag.txt или strings.exe для идентификации компонента или драйвера
  • Обратитесь к поставщику для устранения утечки памяти

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

Эта статья была заказана Red Gate Software, разработчиками гениально простых инструментов для оптимизации среды электронной почты Exchange.
Узнайте больше о Exchange Server Archiver и PST Importer.

.

невыгружаемый пул без выполнения (NX) - драйверы для Windows

  • 2 минуты на чтение

В этой статье

Рекомендуется, чтобы драйверы для Windows 8 и более поздних версий Windows выделяли большую часть или всю невыгружаемую память из невыгружаемого пула без выполнения (NX).Выделяя память из невыгружаемого пула NX, драйвер режима ядра повышает безопасность, предотвращая выполнение вредоносным программным обеспечением инструкций в этой памяти.

Начиная с Windows 8, драйверы режима ядра могут выделять память из пула невыгружаемой памяти NX. Этот пул управляется универсальным распределителем памяти режима ядра, который работает аналогично распределителю кучи Win32 пользовательского режима. Память в этом пуле - NX и невыгружаемая. Архитектуры процессоров x86, x64 и ARM позволяют обозначать страницы памяти как NX, чтобы предотвратить выполнение инструкций на этих страницах.Обычно драйвер режима ядра использует для хранения данных память, выделенную из невыгружаемого пула, и не требует возможности выполнять инструкции в этой памяти.

Поддержка устаревших драйверов

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

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

.

окон - почему мы можем получить доступ к памяти из невыгружаемого пула на уровне DISPATCH LEVEL

или выше Переполнение стека
  1. Около
  2. Товары
  3. Для команд
  1. Переполнение стека Общественные вопросы и ответы
  2. Переполнение стека для команд Где разработчики и технологи делятся частными знаниями с коллегами
  3. Вакансии Программирование и связанные с ним технические возможности карьерного роста
  4. Талант Нанимайте технических специалистов и создавайте свой бренд работодателя
.Производительность

- Linux-версия «невыгружаемого пула» Windows существует ли такая вещь?

Переполнение стека
  1. Около
  2. Товары
  3. Для команд
  1. Переполнение стека Общественные вопросы и ответы
  2. Переполнение стека для команд Где разработчики и технологи делятся частными знаниями с коллегами
  3. Вакансии Программирование и связанные с ним технические возможности карьерного роста
  4. Талант Нанимайте технических специалистов и создавайте свой бренд работодателя
  5. Реклама Обратитесь к разработчикам и технологам со всего мира
  6. О компании

Загрузка…

  1. Авторизоваться зарегистрироваться
.

Смотрите также