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


Сжатая память в Windows 10 и Windows 11 — что это?

Если заглянуть в раздел «Производительность» — «Память» диспетчера задач Windows 11/10, вы можете увидеть пункт «Используется (Сжатая)». В более ранних версиях системы такого понятия как «сжатая» память не было и имеет смысл разобрать, что это такое.

Как работает сжатие памяти в Windows

Как было отмечено выше, посмотреть количество сжатой памяти можно, зайдя в диспетчер задач (правый клик по кнопке Пуск — выбор соответствующего пункта меню) на вкладке «Производительность» в разделе «Память». Что такое сжатая память?

Сжатая память в диспетчере задач Windows

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

  • В предыдущих версиях Windows «избыточные» данные, то есть как минимум 4 Гб выгружались в файл подкачки на вашем жестком диске или SSD.
  • Начиная с Windows 10 и такое поведение сохранилось в Windows 11, часть неиспользуемых в настоящий момент данных сжимается в оперативной памяти, то есть производится своего рода архивация прямо в оперативной памяти, без помещения страниц памяти на диск. Файл подкачки продолжает использоваться, но обращаться к нему приходится реже.

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

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

Малое использование сжатой памяти в Windows

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

В первых версиях Windows 10, сжатое хранилище в памяти (compression store в терминологии Microsoft) отображалось как память, используемая процессом «System» или «Система и сжатая память».

Система и сжатая память в диспетчере задач

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

  • Лучшие бесплатные программы для Windows
  • Syncthing — синхронизация файлов Windows, Linux, MacOS и Android
  • Память встроенной видеокарты Intel HD или Iris Xe, AMD Radeon — как посмотреть, увеличить или уменьшить
  • Файл открыт в System при удалении файла — как исправить?
  • Как открыть порты в Windows и посмотреть список открытых портов
  • Как добавить путь в переменную среды PATH в Windows
  • Windows 11
  • Windows 10
  • Android
  • Загрузочная флешка
  • Лечение вирусов
  • Восстановление данных
  • Установка с флешки
  • Настройка роутера
  • Всё про Windows
  • В контакте
  • Одноклассники
  • Живые обои на рабочий стол Windows 11 и Windows 10
  • Лучшие бесплатные программы на каждый день
  • Как скачать Windows 10 64-бит и 32-бит оригинальный ISO
  • Как смотреть ТВ онлайн бесплатно
  • Бесплатные программы для восстановления данных
  • Лучшие бесплатные антивирусы
  • Средства удаления вредоносных программ (которых не видит ваш антивирус)
  • Встроенные системные утилиты Windows 10, 8 и 7, о которых многие не знают
  • Бесплатные программы удаленного управления компьютером
  • Запуск Windows 10 с флешки без установки
  • Лучший антивирус для Windows 10
  • Бесплатные программы для ремонта флешек
  • Что делать, если сильно греется и выключается ноутбук
  • Программы для очистки компьютера от ненужных файлов
  • Лучший браузер для Windows
  • Бесплатный офис для Windows
  • Запуск Android игр и программ в Windows (Эмуляторы Android)
  • Что делать, если компьютер не видит флешку
  • Управление Android с компьютера
  • Syncthing — синхронизация файлов Windows, Linux, MacOS и Android
  • Память встроенной видеокарты Intel HD или Iris Xe, AMD Radeon — как посмотреть, увеличить или уменьшить
  • Файл открыт в System при удалении файла — как исправить?
  • Как открыть порты в Windows и посмотреть список открытых портов
  • Как добавить путь в переменную среды PATH в Windows
  • Как создать свою службу в Windows 11 и Windows 10
  • Как изменить тип сети Windows 11 — общественная или частная
  • WSCC — все системные утилиты Windows в одном интерфейсе
  • Как отключить обновления Windows 11
  • Как открыть Центр управления сетями и общим доступом в Windows 11
  • Как установить программу без прав Администратора в Windows
  • Shell Infrastructure Host — что это за процесс и почему он грузит процессор?
  • Telegram для Windows не показывает видео и фото — как исправить?
  • Ошибка DirectX function GetDeviceRemovedReason failed — как исправить
  • Как изменить пароль или ПИН-код Windows 11
  • Windows
  • Android
  • iPhone, iPad и Mac
  • Программы
  • Загрузочная флешка
  • Лечение вирусов
  • Восстановление данных
  • Ноутбуки
  • Wi-Fi и настройка роутера
  • Интернет и браузеры
  • Для начинающих
  • Безопасность
  • Ремонт компьютеров
  • Windows
  • Android
  • iPhone, iPad и Mac
  • Программы
  • Загрузочная флешка
  • Лечение вирусов
  • Восстановление данных
  • Ноутбуки
  • Wi-Fi и настройка роутера
  • Интернет и браузеры
  • Для начинающих
  • Безопасность
  • Ремонт компьютеров

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

Новые статьи:  Просмотр и измерение скорости интернета в Windows 10

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

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

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

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

  1. Зайдите в редактор реестра (нажмите клавиши Win+R на клавиатуре, введите regedit и нажмите Enter).
  2. Перейдите к разделу
HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\Ndu\

Исправление проблемы с невыгружаемым пулом в реестре Windows 10

  • Дважды нажмите по параметру с именем «Start» в правой части редактора реестра и задайте значение 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
    • Syncthing — синхронизация файлов Windows, Linux, MacOS и Android
    • Память встроенной видеокарты Intel HD или Iris Xe, AMD Radeon — как посмотреть, увеличить или уменьшить
    • Файл открыт в System при удалении файла — как исправить?
    • Как открыть порты в Windows и посмотреть список открытых портов
    • Как добавить путь в переменную среды PATH в Windows
    • Windows 11
    • Windows 10
    • Android
    • Загрузочная флешка
    • Лечение вирусов
    • Восстановление данных
    • Установка с флешки
    • Настройка роутера
    • Всё про Windows
    • В контакте
    • Одноклассники

      Валерий 16.07.2017 в 23:02

    • Dmitry 17.07.2017 в 08:32

    Кэшированная оперативная память Windows 10 — что это и как её очистить

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

    • Что такое память в состоянии кэшировано
    • Как очистить кэшированную память Windows 10
    • Видео инструкция

    Что значит «Кэшировано» в информации о памяти

    Память кэшировано в диспетчере задач Windows 10

    Если в диспетчере задач вы подведёте указатель мыши к пустому разделу, обычно располагающемуся по центру графического представления «Структура памяти», вы увидите подпись: «Зарезервировано. Память, содержащая кэшированные данные и код, которые сейчас не используются» — речь ведётся именно о той оперативной памяти, которую вы видите в пункте «Кэшировано». Что это означает?

    Описание памяти кэшировано

    Кэшированная память в Windows 10 — это занятые, но неиспользуемые в настоящий момент страницы памяти, содержащие различные данные, которые могут потребоваться в дальнейшем для работы системных и сторонних процессов и которые эффективнее будет получить именно из оперативной памяти, а не снова прочитать с диска. Чем больше доступной неиспользуемой памяти, тем больший её объём может оказаться в состоянии «кэшировано».

    Новые статьи:  Разделение диска при установке Windows 10

    Логику этого подхода можно описать следующим образом: в Windows 10 присутствуют различные механизмы ускорения работы системы и кэшированная память — один из них. При наличии неиспользуемой оперативной памяти эффективнее использовать её как кэш, а не освобождать сразу: сама по себе свободная память не приводит к ускорению работы: система и программы будут работать с одинаковой скоростью, независимо от того, свободно у вас 2 Гб RAM или 16. Проблемы могут возникнуть, когда свободной памяти не остаётся, но кэшированная память с большой вероятностью не станет причиной этого.

    Очистка кэшированной памяти

    Прежде всего, какая-либо очистка кэшированной памяти Windows 10 самостоятельными действиями, с помощью сторонних утилит или другими методами обычно лишена смысла: память «Кэшировано» освобождается системным менеджером памяти в первую очередь, когда RAM потребовалось для каких-либо задач, а доступной свободной оперативной памяти недостаточно.

    В качестве примера: в первом разделе статьи приводился снимок экрана с состоянием ОЗУ в диспетчере задач на момент начала написания этого материала. Ниже — сразу после запуска редактора видео, открытия и запуска рендеринга проекта в нём.

    Кэшированная память очищена автоматически

    Как можно увидеть, объём кэшированной памяти сократился на 2 Гб, в дальнейшем, по прекращении работы с «тяжелым» софтом её объём вновь будет прирастать по мере использования системы и всё это — нормальное поведение, не влияющее негативно на отзывчивость вашего ПК или ноутбука.

    Существуют сторонние утилиты для быстрой очистки всей кэшированной оперативной памяти в Windows 10 и предыдущих версиях системы. Один из самых популярных инструментов — EmptyStandbyList.exe, демонстрация его использования после примечания. Ещё две программы, позволяющие выполнить очистку: Mem Reduct и Intelligent Standby List Cleaner.

    Я не рекомендую подобные программы к использованию. Повторюсь: в рассматриваемом случае приятные для глаз числа свободной оперативной памяти, которые мы сможем получить, не приведут к повышению производительности системы или FPS в играх. В других сценариях, когда речь идёт не о кэшированной памяти, а о занятой и используемой RAM, при условии её нехватки для других задач высвобождение может иметь смысл, но это уже отдельная тема.

    1. Запустите командную строку от имени Администратора.
    2. Введите следующую команду, указав полный путь к EmptyStandbyList.exe в начале команды (для этого можно удерживать клавишу Shift, нажать по файлу правой кнопкой мыши, выбрать пункт «Копировать как путь», а затем вставить в командную строку):

    emptystandbylist.exe standbylist

    Очистка кэшированной памяти в emptystandbylist

  • Вариант результата — на изображении ниже (получено не на том же компьютере, на котором были сделаны предыдущие скриншоты). Ручная очистка памяти кэшировано
  • При этом следует учитывать, что сразу после использования утилиты, по мере работы, объем кэшированной памяти вновь начнёт расти.

    Видео

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

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

    • Лучшие бесплатные программы для Windows
    • Syncthing — синхронизация файлов Windows, Linux, MacOS и Android
    • Память встроенной видеокарты Intel HD или Iris Xe, AMD Radeon — как посмотреть, увеличить или уменьшить
    • Файл открыт в System при удалении файла — как исправить?
    • Как открыть порты в Windows и посмотреть список открытых портов
    • Как добавить путь в переменную среды PATH в Windows
    • Windows 11
    • Windows 10
    • Android
    • Загрузочная флешка
    • Лечение вирусов
    • Восстановление данных
    • Установка с флешки
    • Настройка роутера
    • Всё про Windows
    • В контакте
    • Одноклассники

      Михаил 19.03.2021 в 09:17

    • Dmitry 19.03.2021 в 10:12
    • Dmitry 19.03.2021 в 16:40

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

    31.01.2022

    itpro

    Windows 10, Windows Server 2016, Windows Server 2019

    комментариев 10

    На компьютерах и серверах 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 включено автоматическое обновление драйверов, убедитесь не начались ли проблемы после установки новых драйверов. Попробуйте откатить версию драйвера на более старую и проверить, воспроизводится ли проблема. Если проблема решилась, отключите авто обновление драйверов.

    Отключение драйвера мониторинга сетевой активности 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. Если эта роль не нужна, рекомендуем отключить ее.

    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 показать имя драйвера использующего невыгружаемый пул

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

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

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

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

    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.

    Предыдущая статья Следующая статья


    Оставьте комментарий