Производительность компьютера зависит от многих факторов, обуславливаемых не только объемом ресурсов компонентов «железа», но и их правильным распределением. С целью такого улучшения распределения в 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 ее процесс виден и имеет название «Система и сжатая память»), ее можно отключить, хотя вообще-то это следует считать радикальным решением.
Столкнувшись с загрузкой функцией процессора, попробуйте для начала отключить файл свопа, а затем, перезагрузившись, включить его вновь опцией «Автоматически выбирать размер файла подкачки».
Загрузка…
Если заглянуть в раздел «Производительность» — «Память» диспетчера задач Windows 11/10, вы можете увидеть пункт «Используется (Сжатая)». В более ранних версиях системы такого понятия как «сжатая» память не было и имеет смысл разобрать, что это такое.
На близкую тему могут быть полезными статьи: Что такое Кэшированная оперативная память Windows, Что делать, если невыгружаемый пул занимает память в Windows.
Как работает сжатие памяти в Windows
Как было отмечено выше, посмотреть количество сжатой памяти можно, зайдя в диспетчер задач (правый клик по кнопке Пуск — выбор соответствующего пункта меню) на вкладке «Производительность» в разделе «Память». Что такое сжатая память?
Предположим, что запущенные на вашем компьютере программы и сама операционная система требуют 20 Гб оперативной памяти для работы, а в наличии — лишь 16 Гб. Что при этом происходит?
- В предыдущих версиях Windows «избыточные» данные, то есть как минимум 4 Гб выгружались в файл подкачки на вашем жестком диске или SSD.
- Начиная с Windows 10 и такое поведение сохранилось в Windows 11, часть неиспользуемых в настоящий момент данных сжимается в оперативной памяти, то есть производится своего рода архивация прямо в оперативной памяти, без помещения страниц памяти на диск. Файл подкачки продолжает использоваться, но обращаться к нему приходится реже.
Второй подход сокращает потребность в обращении к HDD или SSD, ускоряет доступ к данным при необходимости, а также сокращает необходимый для работы объем оперативной памяти. Сжатие и распаковка данных в памяти требуют использования ресурсов процессора, однако, выигрыш в скорости по сравнению с файлом подкачки на диске должен быть и с учётом этого фактора.
В случае, если на вашем компьютере или ноутбуке нет нехватки оперативной памяти или множества запущенных, но не используемых программ и процессов, вероятнее всего вы почти никогда не увидите больших чисел в разделе «Сжатая память» — управление памятью Windows достаточно эффективно, чтобы не использовать её там, где это не требуется.
И, наоборот, на системах, где вопрос доступной оперативной памяти стоит остро, а в самой RAM есть достаточно данных, которые не требуют немедленного доступа, сжатая память может использоваться достаточно активно.
В первых версиях Windows 10, сжатое хранилище в памяти (compression store в терминологии Microsoft) отображалось как память, используемая процессом «System» или «Система и сжатая память».
В последних версиях ОС мы можем наблюдать используемую сжатую память в диспетчере задач, а не в памяти, используемой процессами, что должно снизить переживания некоторых пользователей, которые ранее часто обращались с вопросом: Что делать, если Система и сжатая память грузит процессор или RAM.
Содержание
- 1 1. Как работает сжатие ОЗУ?
- 2 2. Как включить или выключить сжатие ОЗУ
- 2.1 Как отключить сжатие оперативной памяти
- 2.2 Как включить сжатие ОЗУ
- 3 3. Влияние сжатия оперативной памяти на производительность
- 4 Стоит ли использовать сжатие ОЗУ в Windows 10?
Windows 10, последняя версия Windows
, вводит новую функцию под названием сжатие ОЗУ. Эта новая процедура управления памятью повышает быстродействие системы с дополнительными вычислительными затратами.
Эта статья отвечает на три вопроса:
- Как работает сжатие ОЗУ?
- Вы можете выключить это?
- Влияет ли это на производительность?
1. Как работает сжатие ОЗУ?
Чем больше ОЗУ установлено
на вашем компьютере, тем больше будет количество программ, которые могут работать в фоновом режиме. Когда ОЗУ не хватает, Windows сохраняет содержимое ОЗУ в файл подкачки. Чтение, запись или изменение размера файла подкачки могут повлиять на производительность, поэтому, чем меньше это требуется Windows, тем лучше.
Сжатие RAM предлагает новое решение, сжимая
или разрушение малоиспользуемых элементов, хранящихся в оперативной памяти, и распаковка их при необходимости. Это уменьшает нагрузку на файл подкачки и значительно увеличивает объем оперативной памяти, доступной операционной системе.
Гэвин коснулся сжатия оперативной памяти в своей статье о том, как решать проблемы с оперативной памятью Windows
,
Имейте в виду, что это грубое упрощение гораздо более сложной цепочки процессов, приводящих к сжатию оперативной памяти. Вот схема от Microsoft о том, как Windows 10 сжимает ОЗУ:
По данным Microsoft, приложения, сжатые в оперативной памяти, занимают 40% от их первоначального размера. Кроме того, Windows 10 теперь использует файл подкачки на 50% меньше.
Сжатая часть оперативной памяти отображается в диспетчере задач Windows как системная и сжатая память. Для случайного наблюдателя кажется, что Windows потребляет необычайное количество оперативной памяти. Влияние на производительность — особенно в системах с 4 ГБ памяти или меньше — должно быть значительным:
Этот метод не является экспериментальным или уникальным. В мире Linux ZRAM предлагает аналог. Например, Android использует ZSWAP и ZRAM с большим эффектом. Сообщалось, что сжатие может улучшить производительность в многоядерных системах. OS X начиная с Mavericks также использовала сжатие RAM. Самым большим отличием является то, что Windows может позволить пользователям включать или выключать сжатие ОЗУ.
2. Как включить или выключить сжатие ОЗУ
Сжатие оперативной памяти обрабатывается процессом, известным как Superfetch. К сожалению, отключение Superfetch может существенно повлиять на производительность системы. Однако для тех, у кого нет других вариантов, вам может потребоваться отключить службу. Это требует небольших усилий.
Как отключить сжатие оперативной памяти
Этот метод отключения сжатия оперативной памяти исходит от пользователя Reddit koukouki. Отдельное спасибо читателю MakeUseOf двусторонний за совет.
Сначала нажмите клавишу Windows + X. Затем нажмите R. Вы должны увидеть Диалог запуска Windows. Введите «Services.msc» (без кавычек) в текстовое поле и нажмите клавишу ввода. Вы должны увидеть список всех служб Windows. разместить Superfetch а также щелкните правой кнопкой мыши в теме. Тогда выбирай свойства.
Далее нажмите на Стоп. Затем выберите поле для Тип запуска. выберите инвалид.
Наконец, нажмите на Хорошо. Сжатие RAM и Superfetch теперь отключены. Однако, если вы испытываете снижение производительности, вам нужно снова включить Superfetch.
Как включить сжатие ОЗУ
Следуйте тем же инструкциям, что и выше, но вместо того, чтобы установить Тип запуска на Отключено, выберите Автоматически из контекстного меню.
Были первые сообщения о том, что сжатие ОЗУ высосало значительный объем ресурсов процессора. Microsoft выпустила исправление, поэтому проблем с производительностью больше не должно быть. Однако это требует тестирования.
3. Влияние сжатия оперативной памяти на производительность
Сжатие ОЗУ не должно влиять на производительность системы, поскольку оно не работает непрерывно в фоновом режиме.
Но включает ли сжатие ОЗУ значительную часть вычислительной мощности вашего компьютера? Я проверил эталонный тест, используя PerformanceMext PassMark, чтобы выяснить это.
После отключения сжатия оперативной памяти я провел бенчмаркинг (5 бесплатных тестовых программ
) компьютер (Dell XPS 13
) с PassMark PerformanceTest 8.0. Результаты не были удивительными — сжатие ОЗУ, по-видимому, никак не влияет на производительность системы. Хотя имейте в виду, что сжатие запускается только тогда, когда обнаруживается, что в памяти хранятся незанятые приложения.
Замечания: Чем выше число, тем выше производительность.
Стоит ли использовать сжатие ОЗУ в Windows 10?
Абсолютно. Сокращая количество раз, которое Windows считывает или записывает в файл подкачки, быстродействие системы должно значительно улучшиться — особенно с 4 ГБ или меньше оперативной памяти. Вдобавок ко всему, при включении не наблюдается заметного снижения производительности системы.
С другой стороны, те из вас, кто имеет 16 ГБ или 32 ГБ оперативной памяти, вероятно, даже не заметят разницы, поскольку ваша система редко (если вообще когда-либо) касается файла подкачки.
Знаете ли вы, что поглощает большую часть вашей системной памяти? Вы сталкивались с какими-либо ограничениями в отношении оперативной памяти на компьютере с Windows 10 и, если да, то сколько у вас оперативной памяти? Пожалуйста, поделитесь с нами в комментариях!
Авторы изображения: Металлический зажим тисков стола модустолленс через Shutterstock
Функция сжатия оперативной памяти в 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, оборудованием или драйверами. В случае необходимости, функцию сжатия памяти можно совсем отключить.
Сжатие памяти — это метод управления памятью, при котором в вашем основном хранилище хранится больше памяти, чем могло бы быть в противном случае, что напрямую влияет на производительность вашего ПК и позволяет ему более эффективно обрабатывать задачи.
По сути, сжатие памяти помогает уменьшить количество запросов на чтение/запись, что приводит к меньшему количеству операций с файлом подкачки.
Например, если у вас есть система с 8 ГБ ОЗУ, и вашей системе требуется 9 ГБ ОЗУ для работы в соответствии с текущими открытыми приложениями и процессами, система сохранит этот дополнительный 1 ГБ на вашем дополнительном хранилище вместо того, чтобы хранить его на первичный, и доступ к нему по мере необходимости.
Хотя это определенно лучше, чем запускать приложения и обрабатывать оперативную память, вторичное хранилище работает слишком медленно по сравнению со скоростью оперативной памяти компьютера. Следовательно, такое расположение памяти снижает производительность вашего ПК.
Когда сжатие памяти включено, система сжимает его, чтобы разместить всю необходимую память в ОЗУ. Однако сжатие и распаковка памяти занимает значительную часть ресурсов ЦП, но, безусловно, стоит поторговаться.
Проверьте текущий статус сжатия памяти
Прежде чем приступить к включению или отключению сжатия памяти в вашей системе, рекомендуется узнать его текущий статус.
Для этого откройте меню «Пуск» и введите «Диспетчер задач». Затем в результатах поиска щелкните плитку «Диспетчер задач», чтобы открыть ее. Кроме того, вы также можете одновременно нажать клавиши Ctrl+ Shift+ Escна клавиатуре, чтобы открыть его.
Затем в окне диспетчера задач щелкните вкладку «Производительность». Затем нажмите на опцию «Память» на левой боковой панели. После этого найдите параметр памяти «Используется»; вы сможете увидеть текущую «сжатую» память внутри круглых скобок, если она включена.
Другой способ проверить, включено ли сжатие памяти, — использовать приложение Terminal на вашем компьютере с Windows.
Чтобы проверить состояние сжатия памяти с помощью терминала, откройте меню «Пуск» и введите «Терминал». Затем в результатах поиска щелкните правой кнопкой мыши плитку «Терминал» и выберите в контекстном меню пункт «Запуск от имени администратора», чтобы открыть его.
Затем в окне терминала введите указанную ниже команду и нажмите Enter на клавиатуре, чтобы выполнить ее.
Get-MMAgent
После этого найдите параметр «Сжатие памяти» в результатах в окне Терминала; если в полях отображается «True», сжатие включено, если отображается «False», сжатие не включено.
Теперь, когда вы определили текущий статус сжатия памяти в вашей системе, пришло время включить или отключить его.
Используйте приложение Terminal для включения или отключения сжатия памяти
Функцию сжатия памяти можно быстро включить или выключить, выполнив одну команду с помощью приложения «Терминал».
Для этого сначала откройте меню «Пуск» и введите «Терминал» для его поиска. Затем в результатах поиска щелкните правой кнопкой мыши плитку «Терминал» и выберите в контекстном меню пункт «Запуск от имени администратора», чтобы запустить его.
Если вы здесь, чтобы включить сжатие памяти в своей системе, введите указанную ниже команду и нажмите Enterна клавиатуре, чтобы выполнить команду.
Enable-MMAgent -mc
Затем перезагрузите компьютер из меню «Пуск», чтобы изменения вступили в силу.
Если вы здесь, чтобы отключить сжатие памяти в своей системе, введите указанную ниже команду и нажмите Enter на клавиатуре, чтобы выполнить команду.
Disable-MMAgent -mc
Затем перезагрузите компьютер из меню «Пуск», чтобы изменения вступили в силу.
Сжатие памяти следует отключать только в том случае, если ваша система использует не более 60 процентов ОЗУ даже при многозадачности, но загрузка ЦП приближается к 100%.
Windows 11/10 включает функцию, известную как Сжатие памяти. Это позволяет лучше использовать доступную память во всех системах за счет уменьшения использования физической памяти. Кроме того, это повышает скорость записи на диск и чтения с диска, когда эта функция включена на вашем компьютере.
Сжатие памяти помогает улучшить общее взаимодействие с пользователем; однако при сжатии и распаковке данных в ОЗУ могут потребоваться дополнительные ресурсы ЦП, что может замедлить работу ЦП в некоторых системах.
Сжатие памяти быстрее, чем традиционный файл подкачки, но использует больше ресурсов ЦП. Если вы заметили, что ваш компьютер работает медленно, попробуйте включить и отключить сжатие памяти.
Как просмотреть объем сжатой памяти в Windows 11/10?
Откройте диспетчер задач, нажав Ctrl + Shift + Esc и перейдите к Производительность вкладка Нажмите Память на левой боковой панели и на правой боковой панели вы можете увидеть, сколько памяти сжато.
Как узнать, включено или отключено сжатие памяти?
Чтобы узнать, включено или отключено сжатие памяти в Windows 11/10, выполните следующие действия:
Шаг 1. Сначала откройте Windows PowerShell с повышенными правами.
Шаг 2. Затем в приглашении Windows PowerShell введите следующее и нажмите Войти с клавиатуры:-
Get-MMAgent
Рядом с полем MemoryCompression вы можете увидеть Истинный для включенного или ЛОЖЬ для инвалидов.
Как включить сжатие памяти в Windows 11/10?
Функция сжатия памяти может помочь младшим системам с небольшим объемом системной памяти. Он сжимает системную память за счет уменьшения количества запросов на чтение/запись и освобождает оперативную память без применения традиционной подкачки.
Чтобы включить сжатие памяти в Windows 11/10, выполните следующие действия:
Шаг 1. Сначала откройте Windows PowerShell с повышенными правами.
Шаг 2. Затем в приглашении Windows PowerShell введите следующее и нажмите Войти с клавиатуры:-
Включить-MMAgent-mc
Шаг 3. Перезагрузите компьютер, чтобы изменения вступили в силу.
Как отключить сжатие памяти в Windows 11/10?
Чтобы отключить сжатие памяти в Windows 11/10, выполните следующие рекомендуемые действия:
Шаг 1. Сначала откройте Windows PowerShell с повышенными правами.
Шаг 2. Затем в приглашении Windows PowerShell введите следующее и нажмите Войти с клавиатуры:-
Отключить-MMAgent-mc
Шаг 3. Наконец, перезагрузите компьютер, чтобы изменения вступили в силу.