n1ro°
RU

Компьютеры · Инструкция

Windows Memory Compression: как проверить и нужно ли отключать

Windows Memory Compression — штатный механизм управления памятью, а не признак того, что системе «не хватает RAM» или.

Редакция N1RO · Проверено

Короткий ответ

Что делает Windows Memory Compression, как проверить Get-MMAgent, безопасно провести A/B-тест и вернуть сжатие памяти после диагностики.

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

Когда системе нужно эффективнее использовать физическую RAM, часть страниц памяти может храниться в сжатом виде вместо немедленной выгрузки на диск. Процессор тратит время на сжатие и распаковку, но доступ к данным в оперативной памяти обычно намного быстрее обращения к накопителю. Это особенно полезно при смешанной нагрузке, где много приложений держат данные, к которым обращаются не каждую секунду. Сам факт наличия compressed memory поэтому не является проблемой. Проблемой могут быть постоянная нехватка commit, интенсивный paging, конкретная утечка или чрезмерная нагрузка CPU — и каждую из этих причин нужно диагностировать отдельно.

Важно: Смотрите на сжатую память как на механизм экономии RAM, а не как на отдельный процесс, который обязан показывать ноль.

Как проверить состояние и провести корректный тест

  1. Откройте PowerShell или Windows Terminal с правами администратора.
  2. Выполните Get-MMAgent и найдите значение MemoryCompression.
  3. До изменений зафиксируйте загрузку CPU, использование RAM, committed memory и поведение приложения в воспроизводимом сценарии.
  4. Если нужен диагностический эксперимент, используйте документированный Disable-MMAgent -MemoryCompression и выполните чистое повторное измерение.
  5. Для возврата используйте Enable-MMAgent -MemoryCompression и снова подтвердите состояние через Get-MMAgent.

Совет: Меняйте только один параметр за тест. Одновременное отключение pagefile, SysMain и Memory Compression делает результат практически неинтерпретируемым.

Когда отключение помогает диагностике, а когда почти наверняка нет

  • [object Object]
  • [object Object]
  • [object Object]
  • [object Object]
  • [object Object]
  • [object Object]

Предупреждение: Если после отключения возрастает paging и диск работает активнее, это не ускорение — вы просто переложили часть работы с CPU на более медленный уровень хранения.

Почему «Сжато» в Диспетчере задач не означает утечку

Утечка памяти — это ситуация, когда программа или компонент продолжает удерживать ресурсы, которые уже не нужны, и потребление растёт вслед за работой процесса. Memory Compression — способ представления страниц, которыми система уже управляет; её размер может увеличиваться и уменьшаться в ответ на общую нагрузку. Поэтому график compressed memory нужно сопоставлять с процессами, committed memory и поведением системы во времени. Если после закрытия тяжёлых приложений давление на память снижается и система остаётся стабильной, сам по себе ненулевой объём сжатых страниц не указывает на дефект. Для реальной утечки ищут конкретный потребитель и динамику роста.

Как Memory Compression связана с pagefile

Сжатие памяти и файл подкачки решают связанные, но не одинаковые задачи. Компрессия пытается удержать больше страниц в RAM ценой вычислений CPU; pagefile предоставляет дисковый резерв и участвует в commit limit. Если отключить компрессию на системе с небольшим объёмом ОЗУ, Windows может чаще обращаться к накопителю, а не магически получить больше свободной памяти. Если одновременно отключить ещё и pagefile, вы уменьшите commit limit и усложните диагностику. Поэтому спор «компрессия или pagefile» поставлен неверно: Windows использует несколько механизмов совместно, а настройка зависит от реальной нагрузки.

Когда причина тормозов находится в драйвере или железе

Медленная система с высоким использованием памяти не обязательно страдает из-за Memory Compression. Драйвер может удерживать paged или nonpaged pool, приложение — создавать утечку, браузер — держать сотни вкладок, а неисправная RAM — приводить к сбоям независимо от объёма сжатых страниц. Если есть BSOD, ошибки памяти или странный рост системных пулов, сначала диагностируйте соответствующий слой. На ПК с очень медленным накопителем нехватка RAM особенно заметна из-за paging, но отключение компрессии в таком случае способно ухудшить ситуацию. Настройка функции имеет смысл только после отделения симптома от причины.

Как измерить результат, а не полагаться на ощущения

Для полезного сравнения создайте повторяемую нагрузку: одинаковый набор приложений, тот же проект или игра, одинаковое число вкладок и несколько минут стабилизации. Запишите среднюю и пиковую загрузку CPU, объём используемой и committed memory, активность диска и время выполнения задачи. Затем поменяйте только Memory Compression, повторите сценарий после перезапуска и сравните цифры. Разница в несколько секунд при одновременно изменившемся кэше, обновлениях или температуре процессора ещё ничего не доказывает. Если выигрыш воспроизводится несколько раз и побочных эффектов нет, у вас есть основание для узкой настройки; иначе лучше вернуть штатное состояние.

Почему рабочий набор и commit нельзя смешивать в одной цифре

Рабочий набор показывает страницы, которые сейчас находятся в физической памяти, а commit описывает другой уровень — объём памяти, для которого системе нужно обеспечить backing в RAM или pagefile. Поэтому высокий показатель используемой RAM сам по себе не доказывает, что Memory Compression создаёт проблему. Во время A/B-теста смотрите одновременно на committed memory, дисковую активность и время выполнения одной и той же задачи. Если после отключения сжатия CPU немного разгрузился, но paging вырос и приложение стало дольше ждать данные с диска, итоговая производительность могла ухудшиться. Оценивать нужно весь сценарий, а не одну метрику Диспетчера задач.

Что сделать перед тем, как оставить функцию выключенной

  • Подтвердить состояние Get-MMAgent до и после теста.
  • Сравнить одну и ту же нагрузку, а не разные приложения.
  • Проверить committed memory и активность pagefile.
  • Убедиться, что высокий CPU действительно коррелирует с памятью, а не с другим процессом.
  • Повторить тест и вернуть Enable-MMAgent -MemoryCompression, если преимущества не воспроизводятся.
  • Не использовать отключение как лечение утечки или неисправной RAM.

Что учитывать

Утечка памяти — это ситуация, когда программа или компонент продолжает удерживать ресурсы, которые уже не нужны, и потребление растёт вслед за работой процесса. Memory Compression — способ представления страниц, которыми система уже управляет; её размер может увеличиваться и уменьшаться в ответ на общую нагрузку. Поэтому график compressed memory нужно сопоставлять с процессами, committed memory и поведением системы во времени. Если после закрытия тяжёлых приложений давление на память снижается…

Источники и проверка

Фактическая часть сверена по первичным источникам (в т.ч. Enable-MMAgent). Пример и формулировки — редакция N1RO на 2026-09-21.