Как включить или отключить сжатую память в Windows 10/11 и Windows Server?

Как включить или отключить сжатую память в Windows 10/11 и Windows Server?

Функция сжатия оперативной памяти в Windows 10 и 11 используется для оптимизации использования RAM за счет хранения части страниц в оперативной памяти в сжатом виде (компрессия). Благодаря использованию сжатия памяти процессов вы можете размещать больше процессов в физической оперативной памяти без складывания их в своп файла на диске. Нужные данные извлекаются из более быстрой оперативной памяти быстрее, даже с учетом того, что на их сжатие/декомпрессию тратятся дополнительные ресурсы процессора. При использовании сжатия памяти уменьшается использование RAM, снижается нагрузка на жесткий диск за счет меньшего количества операций ввода/вывода к файлу подкачки и сохраняется ресурс SSD.

Впервые Microsoft добавила поддержку сжатия памяти процессом Memory Manager (MM) в Windows 10 и Windows Server 2016. В этой статье мы рассмотрим, как посмотреть статистику по использованию сжатой памяти в Windows, как включить или отключить сжатие RAM (если ваш компьютер работает медленно из-за высокой загрузки процессом Memory Compression).

Получить информацию о сжатой памяти в Windows 10

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

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

В современных билдах Windows (Win 10 20H2 и Windows 11) этот функционал выделен в отдельный процесс Сжатая память (Memory Compression), который не доступен в диалоговом окне диспетчера задач. Получить информацию об этом процессе можно с помощью PowerShell командлета Get-Process:

Get-Process -Name "Memory Compression"

Handles NPM(K) PM(K) WS(K) CPU(s) Id SI ProcessName
------- ------ ----- ----- ------ -- -- -----------
0 0 2184 53104 1 810,95 2388 0 Memory Compression

Get-Process -Name "Memory Compression"

В диспетчере задач Windows можно просмотреть только текущий уровень использования компрессии памяти.

Перейдите на вкладку Производительность (Performance), выберите раздел Память (Memory). Текущее значение использования сжатой памяти отображается в значении параметра Использование (сжатая)/ In Use (Compression). В моем примере Windows использует 4.4 Гб памяти, из которой в сжатом виде хранится 472 Мб. Чтобы понять, какой объем данных получилось сжать, нужно навести мышкой на график Структура памяти (Memory composition):

Используется сжатой памяти (471 Мб). В сжатой памяти хранится примерно 1721 Мб данных, освобождая для системы 1249 Мб памяти.

Как вы видите, уровень компрессии памяти достигает почти 400%, так что экономия RAM довольно большая.

Использование сжатой памяти отображается в диспетчере задач Windows

Вы можете найти более подробную информацию о нагрузке на CPU процессом Memory Compression и его размер в памяти Windows 10/11 с помощью утилиты Process Explorer.

Запустите Process Explorer и найдите процесс Memory Compression в дереве процесса System.

Proccess Explorer: нагрузка на компьютер процессом memory compression в Windows 11

Процесс сжатия памяти обслуживаются службой SysMain (ранее – SuperFetch). SysMain обеспечивает сокращение объёма записи на диск путём сжатия и объединения страниц памяти. Если эта служба остановлена, то в Windows не используется сжатие RAM.

Вы можете проверить состояние службы SysMain с помощью PowerShell:

get-service sysmain

оптимизация памяти в windows зависит от службы sysmain

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

Процесс «Система и сжатая память» сильно грузит компьютер

Служба SysMain и процесс Memory Compression в подавляющем большинстве случаем улучшают производительность компьютера. Но иногда случается, когда процесс «Система и сжатая память» начинает сильно грузить процессор или жесткий диск компьютера (вплоть до 100%, это видно в диспетчере задач), или же занимать в памяти слишком много места. Компьютер, при этом, естественно, начинает сильно тормозить и подвисать.

процесс Система и сжатая память занимает большую часть оперативной памяти

Что делать в этом случае?

Я приведу 2 совета, которые должны помочь исправить проблему с высокой загрузкой системы процессом «Сжатая память».

  • Отключите файл подкачки системы (опция Без файла подкачки), перезагрузите компьютер, включите файл подкачки (опция Автоматически выбирать размер файла подкачки) и еще раз перезагрузитесь.
  • Если проблема высокой загрузки процессом «Сжатая память» возникает только при выходе из режима сна или гибернации (а после перезагрузки пропадает), попробуйте скачать и установить с сайта производителя последние версии драйверов для ваших дисковых контроллеров (ACPI/AHCI/RAI SCSI), дисков и видеокарты. После чего желательно отключить автоматическое обновление драйверов.драйвера ssd диска

Если указанные манипуляции не помогли, можно попробовать полностью запретить Windows использовать сжатую память.

Как отключить сжатую память в Windows 10 и 11?

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

Get-mmagent

ApplicationLaunchPrefetching : True
ApplicationPreLaunch         : True
MaxOperationAPIFiles         : 512
MemoryCompression            : True
OperationAPI                 : True
PageCombining                : True

Строка MemoryCompression : True указывает на то, что сжатие памяти включено.

Чтобы отключить сжатую память, выполните:

Disable-MMAgent –MemoryCompression

И перезагрузите компьютер

Restart-Computer

Disable-MMAgen - MemoryCompression - отключить сжатую память в Windows 10

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

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

  1. Отключить службу SysMain или SuperFetch (
    services.msc
    -> SysMain-> тип запуска Отключена). Это отключит в Windows 10/11 современные процессы оптимизации памяти;
  2. Отключит задание обслуживания системы в планировщике RunFullMemoryDiagnosticEntry (Task Scheduler -> Библиотека планировщика -> Microsoft -> Windows -> MemoryDiagnostic -> RunFullMemoryDiagnosticEntry ->Отключить);d0bad0b0d0ba d0b2d0bad0bbd18ed187d0b8d182d18c d0b8d0bbd0b8 d0bed182d0bad0bbd18ed187d0b8d182d18c d181d0b6d0b0d182d183d18e d0bfd0b0d0bc 65d23212731ba
  3. Попробуйте отключить драйвер мониторинга сетевой активности (Network Data Usage — NDU (описано статье про невыгружаемый пул памяти Windows);
  4. Отключите проверку в реальном времени в вашем антивирусе. Возможно он некорректно работает со сжатой памятью;
  5. Проверьте целостность системных файлов образа Windows с помощью DISM и SFC.

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

Как включить сжатие памяти в Windows Server 2016/2019/2022 или Windows 10/11?

Во всех версиях Windows Server сжатие памяти по-умолчанию отключено.

Выполните команду
Get-mmagent
, чтобы проверить что сжатие памяти отключено. На скриншоте ниже мы показали, что в Windows Server 2022 значение Memory Comression = False.

windows-server 2022 - включить сжатие памяти

Чтобы Windows могла использовать сжатие памяти, должны быть выполнены следующие условия:

  • Включен файл подкачки (хотя бы минимального размера – 16 МБ);
  • Служба SysMain должна быть запущена;
  • Используется Windows 10/11 или Windows Server 2016+ (можно узнать версию Windows с помощью команды winver или с помощью PowerShell).

Чтобы включить сжатие памяти, выполните команду:

Enable-MMAgent -MemoryCompression

Перезагрузите компьютер.

При включении сжатия памяти автоматически включается еще одна функция SysMain — page combining. Эта функция диспетчера памяти используется для объединения страниц памяти с одинаковым содержимым (своеобразная дедупликация в RAM).

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

Windows 11
Как включить или отключить сжатую память в Windows 10/11 и Windows Server?