Функция сжатия оперативной памяти в Windows 10 и 11 используется для оптимизации использования RAM за счет хранения части страниц в оперативной памяти в сжатом виде (компрессия). Благодаря использованию сжатия памяти процессов вы можете размещать больше процессов в физической оперативной памяти без складывания их в своп файла на диске. Нужные данные извлекаются из более быстрой оперативной памяти быстрее, даже с учетом того, что на их сжатие/декомпрессию тратятся дополнительные ресурсы процессора. При использовании сжатия памяти уменьшается использование RAM, снижается нагрузка на жесткий диск за счет меньшего количества операций ввода/вывода к файлу подкачки и сохраняется ресурс SSD.
Впервые Microsoft добавила поддержку сжатия памяти процессом Memory Manager (MM) в Windows 10 и Windows Server 2016. В этой статье мы рассмотрим, как посмотреть статистику по использованию сжатой памяти в Windows, как включить или отключить сжатие RAM (если ваш компьютер работает медленно из-за высокой загрузки процессом Memory Compression).
Содержание:
- Получить информацию о сжатой памяти в Windows 10
- Процесс «Система и сжатая память» сильно грузит компьютер
- Как отключить сжатую память в Windows 10 и 11?
- Как включить сжатие памяти в Windows Server 2016/2019/2022 или Windows 10/11?
Если диспетчер памяти 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
В диспетчере задач Windows можно просмотреть только текущий уровень использования компрессии памяти.
Перейдите на вкладку Производительность (Performance), выберите раздел Память (Memory). Текущее значение использования сжатой памяти отображается в значении параметра Использование (сжатая)/ In Use (Compression). В моем примере Windows использует 4.4 Гб памяти, из которой в сжатом виде хранится 472 Мб. Чтобы понять, какой объем данных получилось сжать, нужно навести мышкой на график Структура памяти (Memory composition):
Используется сжатой памяти (471 Мб). В сжатой памяти хранится примерно 1721 Мб данных, освобождая для системы 1249 Мб памяти.
Как вы видите, уровень компрессии памяти достигает почти 400%, так что экономия RAM довольно большая.
Вы можете найти более подробную информацию о нагрузке на CPU процессом Memory Compression и его размер в памяти Windows 10/11 с помощью утилиты Process Explorer.
Запустите Process Explorer и найдите процесс Memory Compression в дереве процесса System.
Процесс сжатия памяти обслуживаются службой SysMain (ранее – SuperFetch). SysMain обеспечивает сокращение объёма записи на диск путём сжатия и объединения страниц памяти. Если эта служба остановлена, то в Windows не используется сжатие RAM.
Вы можете проверить состояние службы SysMain с помощью PowerShell:
get-service sysmain
В большинстве случаев, если Windows работает нормально и на нем установлен достаточный объём оперативной памяти, процесс «Сжатой памяти» работает отлично и не требует никакого вмешательства.
Процесс «Система и сжатая память» сильно грузит компьютер
Служба SysMain и процесс Memory Compression в подавляющем большинстве случаем улучшают производительность компьютера. Но иногда случается, когда процесс «Система и сжатая память» начинает сильно грузить процессор или жесткий диск компьютера (вплоть до 100%, это видно в диспетчере задач), или же занимать в памяти слишком много места. Компьютер, при этом, естественно, начинает сильно тормозить и подвисать.
Что делать в этом случае?
Я приведу 2 совета, которые должны помочь исправить проблему с высокой загрузкой системы процессом «Сжатая память».
- Отключите файл подкачки системы (опция Без файла подкачки), перезагрузите компьютер, включите файл подкачки (опция Автоматически выбирать размер файла подкачки) и еще раз перезагрузитесь.
- Если проблема высокой загрузки процессом «Сжатая память» возникает только при выходе из режима сна или гибернации (а после перезагрузки пропадает), попробуйте скачать и установить с сайта производителя последние версии драйверов для ваших дисковых контроллеров (ACPI/AHCI/RAI SCSI), дисков и видеокарты. После чего желательно отключить автоматическое обновление драйверов.
Если указанные манипуляции не помогли, можно попробовать полностью запретить 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
Проверьте, изменилась ли общая производительность системы после отключения сжатой памяти.
В некоторых случаях пользователям для исправления проблемы со сжатой памятью рекомендуют:
- Отключить службу SysMain или SuperFetch (
services.msc
-> SysMain-> тип запуска Отключена). Это отключит в Windows 10/11 современные процессы оптимизации памяти; - Отключит задание обслуживания системы в планировщике RunFullMemoryDiagnosticEntry (Task Scheduler -> Библиотека планировщика -> Microsoft -> Windows -> MemoryDiagnostic -> RunFullMemoryDiagnosticEntry ->Отключить);
- Попробуйте отключить драйвер мониторинга сетевой активности (Network Data Usage — NDU (описано статье про невыгружаемый пул памяти Windows);
- Отключите проверку в реальном времени в вашем антивирусе. Возможно он некорректно работает со сжатой памятью;
- Проверьте целостность системных файлов образа Windows с помощью DISM и SFC.
Эти советы могут помочь избавится от чрезмерной нагрузки на компьютер со стороны процесса «Сжатая память». Но при этом отключаются базовые подсистемы оптимизации производительности Windows, что может негативно сказаться на общей производительности компьютера.
Как включить сжатие памяти в Windows Server 2016/2019/2022 или Windows 10/11?
Во всех версиях Windows Server сжатие памяти по-умолчанию отключено.
Выполните команду
Get-mmagent
, чтобы проверить что сжатие памяти отключено. На скриншоте ниже мы показали, что в Windows Server 2022 значение Memory Comression = False.
Чтобы Windows могла использовать сжатие памяти, должны быть выполнены следующие условия:
- Включен файл подкачки (хотя бы минимального размера – 16 МБ);
- Служба SysMain должна быть запущена;
- Используется Windows 10/11 или Windows Server 2016+ (можно узнать версию Windows с помощью команды winver или с помощью PowerShell).
Чтобы включить сжатие памяти, выполните команду:
Enable-MMAgent -MemoryCompression
Перезагрузите компьютер.
При включении сжатия памяти автоматически включается еще одна функция SysMain — page combining. Эта функция диспетчера памяти используется для объединения страниц памяти с одинаковым содержимым (своеобразная дедупликация в RAM).
Технология «Сжатой памяти» в Windows 10 и 11, как правило работает довольно эффективно и не требует никаких вмешательств. Если сжатие памяти вызывает проблемы на вашем компьютере, скорее всего у вас имеются проблемы с настройками Windows, оборудованием или драйверами. В случае необходимости, функцию сжатия памяти можно совсем отключить.
Сжатие памяти в Windows 10/11: какие варианты?
Одна из главных задач любой операционной системы — эффективно распределять ресурсы компьютера. Особое внимание уделяется именно оперативной памяти. В Windows 10 появилась возможность управлять одним из типов памяти при помощи функции MM (она же Memory Management) с целью сжатия страниц с редким к ним обращением. Это призвано изменить объём операций записи/чтения на/с диска (речь сейчас идёт за пресловутый pagefile.sys), теоретически давая возможность пользователю поиграть с производительностью вцелом. Сжимая память мы сокращаем общий её объём, используемый на обслуживание каждого конкретного процесса. Тем самым (продолжая логическую цепочку) давая всё большему количеству приложений работать именно с RAM до обращения к pagefile на диске, чья скорость ниже, чем у планок оперативной памяти. Даже сейчас, когда HDD заменяются на гораздо более быстрые SSD.
Когда Менеджер памяти заставляет вносить запись в pagefile, данные, записываемые на диск или с него читаемые, уже сжаты в среднем на 40% по сравнению с оригинальным своим размером. Сжатие таким образом призвано улучшить производительность остальных процессов за счёт снятия (или хотя бы снижения) воздействия или влияния на общий объём данных при вводе/выводе информации уже на экране. В итоге пользователь должен заметить более быстрые запуск и ответ от приложений. Но как всегда здесь есть одно НО: производительность в части высвобождения памяти в этом случае ложится на плечи центрального процессора. Сжатие памяти ускоряет производительность системы за счёт уменьшения числа обращений к pagefile.sys, то бишь к диску (который — файл — конечно, никуда не удаляется). Но процессор при этом «немного поднагрузится». При этом следует учесть, что под улучшением производительности не стоит понимать именно УСКОРЕНИЕ системы. Если вы видите большой объём памяти в части сжатой в Диспетчере задач, и в этом вы вините именно нехватку памяти, есть смысл прибегнуть к:
- установке дополнительных планок оперативной памяти (увеличение физической памяти компьютера);
- или отключению сжатия памяти, перенося нагрузку на процессор.
Включено ли сжатие памяти сейчас?
- запускаем консоль Powershell от имени администратора
- вводим команду
Get-MMAgent
- проверяем вывод консоли. В части выводимых данных в строке MemoryCompression вы увидите либо False (Не Включено) либо True (Включено):
Как включить или выключить сжатие в Windows 10/11?
- Сжатие включается из той же консоли Powershell командой
Enable-MMAgent -mc
Результаты включения сжатия проявят себя при определённых обстоятельствах, то есть при серьёзной нагрузке на систему.
- Выключаем так:
Disable-MMAgent -mc
Обе операции подразумевают перезагрузку Windows.
ВНИМАНИЕ. При отключении сжатия Windows после перезагрузки может на некоторое время зависнуть.
Нужно ли включать сжатие памяти в Windows?
Вопрос, как вы поняли по предыдущим абзацам, скользкий. По идее система выбирает эту «настройку» самостоятельно. Однако мне лично известен случай, когда на компьютере со следующими характеристиками:
- Windows 10 Профессиональная
- Intel® Core™ i5 2,8 ГГц 6200U
- 16 ГБ RAM
пользователь начал замечать серьёзные лаги в части производительности при загрузке процессора в границах 80% и выше. Короче, играл напропалую. При этом владка Диспетчера с памятью не диагностировала подъём потребления выше 60%, а сжатие памяти было включено. В качестве пробы было принято решение ОТКЛЮЧИТЬ сжатие, после чего системные прерывания перестали перегружать процессор. Беспричинные задержки в работе Windows также прекратились. Не рассматривайте описанное как призыв к действию, просто бросьте в копилку знаний.
Успехов.
Многие пользователи Windows 10 замечают, что процесс Система и сжатая память грузит процессор или же использует слишком много оперативной памяти. Причины такого поведения могут быть разные (а потребление RAM так и вовсе может быть нормальной работой процесса), иногда – баг, чаще — проблемы с драйверами или оборудованием (в случаях, когда загружен процессор), но возможны и другие варианты.
Процесс «Система и сжатая память» (System and compressed memory) в Windows 10 — один из компонентов новой системы управления памятью ОС и выполняет следующую функцию: уменьшает количество обращений к файлу подкачки на диске за счет помещения данных в сжатом виде в оперативную память вместо записи на диск (в теории, это должно ускорить работу). Подробнее: Что такое сжатая память в Windows 11 и Windows 10. Однако, по отзывам, функция не всегда работает как ожидается.
Примечание: если у вас на компьютере большой объем оперативной памяти и при этом вы используете требовательные к ресурсам программы (или открываете по 100 вкладок в браузере), при этом «Система и сжатая память» использует много RAM, но не вызывает проблем с производительностью и не нагружает процессор на десятки процентов, то как правило — это нормальная работа системы и вам не о чем беспокоиться.
Что делать, если система и сжатая память грузит процессор или память
Далее — несколько наиболее вероятных причин того, что указанный процесс потребляет слишком много ресурсов компьютера и пошаговое описание того, что делать в каждой из ситуаций.
Драйверы оборудования
Прежде всего, если проблема с загрузкой процессора процессом «Системная и сжатая память» происходит после выхода из сна (а при перезагрузке все работает нормально), либо после недавней переустановки (а также сброса или обновления) Windows 10, вам стоит обратить внимание на драйверы вашей материнской платы или ноутбука.
При этом следует учитывать следующие моменты
- Наиболее часто проблему могут вызывать драйверы управления питанием и драйверы дисковых систем, в частности Intel Rapid Storage Technology (Intel RST), Intel Management Engine Interface (Intel ME), драйверы ACPI, специфичные драйверы AHCI или SCSI, а также отдельное ПО некоторых ноутбуков (различные Firmware Solution, UEFI Software и подобное).
- Обычно Windows 10 сама устанавливает все эти драйверы и в диспетчере устройств вы видите, что всё в порядке и «драйвер не нуждается в обновлении». Однако, эти драйверы могут быть «не те», что и вызывает проблемы (при выключении и выходе из сна, с работой сжатой памяти и другие). Кроме этого, даже после установки нужного драйвера, десятка может снова «обновить» его, вернув проблемы в работе компьютера.
- Решение — загрузить драйверы с официального сайта производителя ноутбука или материнской платы (а не устанавливать из драйвер-пака) и установить их (даже если они для одной из предыдущих версий Windows), после чего запретить Windows 10 обновлять эти драйверы. О том, как это сделать я писал в инструкции Windows 10 не выключается (где причины перекликаются с текущим материалом).
Отдельно обратите внимание на драйверы видеокарты. Проблема с процессом может быть и в них, причем решаться по-разному:
- Установкой последних официальных драйверов с сайта AMD, NVIDIA, Intel вручную.
- Наоборот, удалением драйверов с помощью утилиты Display Driver Uninstaller в безопасном режиме и последующей установкой более старых драйверов. Часто срабатывает для старых видеокарт, например, GTX 560 может работать без проблем с версией драйверов 362.00 и вызывать проблемы с производительностью на более новых версиях. Подробнее про это в инструкции Установка драйверов NVIDIA в Windows 10 (все то же самое будет и для других видеокарт).
Если же манипуляции с драйверами не помогли, пробуем другие способы.
Параметры файла подкачки
В некоторых случаях проблема (в данном случае — баг) с нагрузкой на процессор или память в описываемой ситуации может решаться более простым способом:
- Отключите файл подкачки и перезагрузите компьютер. Проверьте, нет ли проблем с процессом «Система и сжатая память».
- Если проблем нет, попробуйте снова включить файл подкачки и выполнить перезагрузку, возможно, проблема не повторится.
- Если повторилась, попробуйте повторить шаг 1, после чего задать размер файла подкачки Windows 10 вручную и снова перезагрузить компьютер.
Подробно о том, как именно отключить или изменить параметры файла подкачки, вы можете прочитать здесь: Файл подкачки Windows 10.
Антивирусы
Еще одна возможная причина нагрузки процессом сжатой памяти — неправильная работа антивируса при проверке памяти. В частности, такое может происходить, если вы устанавливаете антивирус без поддержки Windows 10 (то есть какую-либо устаревшую версию, см. Лучший антивирус для Windows 10).
Возможно также, что у вас установлено несколько программ для защиты компьютера, которые конфликтуют между собой (в большинстве случаев, более 2-х антивирусов, не считая встроенного защитника Windows 10, вызывают те или иные проблемы, влияющие на производительность системы).
Отдельные отзывы по проблеме говорят о том, что в некоторых случаях модули фаервола в антивирусе могут быть причиной нагрузки, отображаемой для процесса «Система и сжатая память». Рекомендую проверить, временно отключив защиту сети (фаервол) в вашем антивирусе.
Google Chrome
Иногда манипуляции с браузером Google Chrome позволяют исправить проблему. Если у вас установлен этот браузер и, особенно, работает в фоновом режиме (или же нагрузка появляется после непродолжительного использования браузера), попробуйте следующие вещи:
- Отключите аппаратное ускорение видео в Google Chrome. Для этого зайдите в Настройки — «Показать дополнительные настройки» и снимите отметку «Использовать аппаратное ускорение». Перезапустите браузер. После этого в адресную строку введите chrome://flags/ найдите на странице пункт «Аппаратное ускорение для декодирования видео», отключите его и еще раз перезапустите браузер.
- Там же в настройках отключите «Не отключать работающие в фоновом режиме сервисы при закрытии браузера».
После этого попробуйте перезагрузить компьютер (именно перезагрузить) и обратить внимание, проявляет ли себя процесс «Система и сжатая память» тем же образом, что и раньше при работе.
Дополнительные варианты решения проблемы
Если ни один из описанных способов не помог решить проблемы с нагрузкой, вызываемой процессом «Система и сжатая память», вот еще несколько непроверенных, но по некоторым отзывам иногда срабатывающих способов исправить проблему:
Надеюсь, одно из решений позволит вам справиться с проблемой. Не забывайте также про проверку компьютера на вирусы и вредоносные программы, они также могут оказаться причиной ненормальной работы Windows 10.
Производительность компьютера зависит от многих факторов, обуславливаемых не только объемом ресурсов компонентов «железа», но и их правильным распределением. С целью такого улучшения распределения в Windows была разработана и внедрена функция сжатия оперативной памяти, позволяющая уменьшить количество операций чтения/записи области медленной виртуальной памяти, известной как файл подкачки.
Компрессия/декомпрессия страниц осуществляется силами процессора, тем не менее, получаемый профит в скорости обмена данными памяти покрывает избыточную загрузку CPU.
На деле, конечно, не всё так однозначно. Взвесить все «за» и «против» использования функции сжатия памяти можно лишь протестировав функцию на конкретном компьютере, но сначала ее нужно включить, если она по какой-то причине оказалась отключена.
Изначально управляющий подсистемой сжатой памяти поток находился внутри системного процесса System, в Windows 10 1511, а затем и в Windows 1607 он был вынесен в отдельный скрытый процесс, недоступный для просмотра в Диспетчере задач. Просмотреть в оном на вкладке «Производительность» можно лишь объем используемой сжатой памяти.
Также получить сведения о сжатой памяти можно командой:
Get-Process -Name «Memory Compression»
В запущенной от имени администратора консоли PowerShell.
Если же нужно проверить, включена ли сжатая память или нет вообще, выполняем команду Get-MMAgent и смотрим значение параметра MemoryCompression.
True будет означать, что функция сжатия памяти активна, False — что она в данный момент отключена.
Чтобы включить функцию, выполняем команду:
Enable-MMAgent -mc
Чтобы отключить:
Disable-MMAgent -mc
Новая конфигурация применяется после перезагрузки компьютера.
В большинстве случаев функция «Сжатая память» работает корректно, не требуя со стороны пользователя никаких действий и вполне оправдывая свое назначение, но гарантии, что так будет всегда, нет никакой.
Если вы заметили, что функция грузит процессор (в последних версиях Windows ее процесс виден и имеет название «Система и сжатая память»), ее можно отключить, хотя вообще-то это следует считать радикальным решением.
Столкнувшись с загрузкой функцией процессора, попробуйте для начала отключить файл свопа, а затем, перезагрузившись, включить его вновь опцией «Автоматически выбирать размер файла подкачки».
Загрузка…
You can check the full answer at What is the cause of a high CPU usage of ‘system and compressed memory’ in Windows 10?. But for a short version:
I went to:
Start->Control Panel->Administrative Tools->Task Scheduler->Task Scheduler Library->Microsoft->Windows->MemoryDiagnostic
(To make this option visible, you need to run the «Task Scheduler» as Administrator!)
There are two line items. Running of the task may be dependent upon log events. I’m not sure if they just have to exist, or if they trigger upon entry into the log. In any case, I disabled the entry labelled as RunFullMemoryDiagnosticEntry. That solved my instance of the problem.
If this doesn’t solve your issue, instructions earlier in the answer suggest using the Windows Performance Analyzer to help find a solution.