Сжатие памяти Windows 10/11: включить и выключить.

сжатая память memory management

Сжатие памяти в Windows 10/11: какие варианты?

Одна из главных задач любой операционной системы – эффективно распределять ресурсы компьютера. Особое внимание уделяется именно оперативной памяти. В Windows 10 появилась возможность управлять одним из типов памяти при помощи функции MM (она же Memory Management) с целью сжатия страниц с редким к ним обращением. Это призвано изменить объём операций записи/чтения на/с диска (речь сейчас идёт за пресловутый pagefile.sys), теоретически давая возможность пользователю поиграть с производительностью вцелом. Сжимая память мы сокращаем общий её объём, используемый на обслуживание каждого конкретного процесса. Тем самым (продолжая логическую цепочку) давая всё большему количеству приложений работать именно с RAM до обращения к pagefile на диске, чья скорость ниже, чем у планок оперативной памяти. Даже сейчас, когда HDD заменяются на гораздо более быстрые SSD.

Когда Менеджер памяти заставляет вносить запись в pagefile, данные, записываемые на диск или с него читаемые, уже сжаты в среднем на 40% по сравнению с оригинальным своим размером. Сжатие таким образом призвано улучшить производительность остальных процессов за счёт снятия (или хотя бы снижения) воздействия или влияния на общий объём данных при вводе/выводе информации уже на экране. В итоге пользователь должен заметить более быстрые запуск и ответ от приложений. Но как всегда здесь есть одно НО: производительность в части высвобождения памяти в этом случае ложится на плечи центрального процессора. Сжатие памяти ускоряет производительность системы за счёт уменьшения числа обращений к pagefile.sys, то бишь к диску (который – файл – конечно, никуда не удаляется). Но процессор при этом “немного поднагрузится”. При этом следует учесть, что под улучшением производительности не стоит понимать именно УСКОРЕНИЕ системы. Если вы видите большой объём памяти в части сжатой в Диспетчере задач, и в этом вы вините именно нехватку памяти, есть смысл прибегнуть к:

  • установке дополнительных планок оперативной памяти (увеличение физической памяти компьютера);
  • или отключению сжатия памяти, перенося нагрузку на процессор.

Включено ли сжатие памяти сейчас?

  • запускаем консоль Powershell от имени администратора

powershell от имени администратора

  • вводим команду
Get-MMAgent
  • проверяем вывод консоли. В части выводимых данных в строке MemoryCompression вы увидите либо False (Не Включено) либо True (Включено):

сжатие памяти в windows 10 11

Как включить или выключить сжатие в 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/11: включить и выключить.”

  1. Все логично – потому, что при настройках “по умолчанию” (если не производить “тюнинг”, твиками или ручным редактированием реестра) Windows как раз при загрузке оперативной памяти более 60% начинает пытататься ее освобождать – старые версии (начиная еще с Win2000/XP) просто смотрели наименее часто используемые страницы памяти и начинали их выгружать в файл подкачки. Несмотря на то, что оперативной памяти еще “вагон”. Просто “на всякий случай”, а вдруг какой-то программе много оперативки скоро понадобится?! А в файл подкачки выгружать долго (особенно если это обычный жесткий диск). Давайте ка я займусь этим заранее…
    Ну а начиная с Windows 10 перед тем как кидать данные из оперативки на диск (свопиться), она сначала данные начинает сжимать в памяти. Ну а если этого мало – тогда уже в ход идет файл подкачки (впрочем процессы параллельно, там отдельная логика – что-то идет сразу в файл подкачки по каким-то критериям)

    Логика в принципе есть, но значение по умолчанию (начинать освобождать память при ее загрузке более 60%) слишком агрессивно/не оптимально выставлено ИМХО. Приводит вот к таким случаям как у этого пользователя, когда система грузит процессор лишней работой (или насилует диск файлом подкачки если сжатие памяти отключено или на версиях Windows старее чем 10я) несмотря на то, что оперативной памяти свободной может быть еще очень много.
    На компьютерах с большим объемом оперативной памяти имеет смысл это настроить, увеличив %. ИМХО так, чтобы выгрузка в файл подкачки начиналась только когда свободной оперативки остается последние 1,5-2,5 ГБ. Т.е. при 8 ГБ – 75-80%, при 16 ГБ – 80-85%. Ну а при 32 ГБ и все 90% можно ставить.
    Иначе получается идиотизм – еще скажем 12 ГБ оперативной памяти из 32 ГБ свободно (38%), а система уже во всю грузит процессор ее сжимая или хуже гонит данные из памяти на диск зачем-то.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Максимальный размер загружаемого файла: 50 МБ. Вы можете загрузить: изображение, видео. Ссылки на YouTube, Facebook, Twitter и другие сервисы, вставленные в текст комментария, будут автоматически встроены. Перетащите файлы сюда