Размещение файла подкачки в сжатом RAM-диске позволяет системе выгружать неиспользуемые страницы памяти не на медленный диск, а в сжатую область самой оперативной памяти — и это кардинально меняет поведение компьютера при нехватке RAM. Вместо долгих обращений к SSD или HDD система просто сжимает данные и держит их в быстрой памяти, а при обращении распаковывает за микросекунды. Именно так работают механизмы zram и zswap в Linux, а также сжатие памяти в Windows 10/11 и macOS.

Идея выглядит парадоксально: подкачка внутри самой оперативной памяти, которой и так не хватает. Но за счёт сжатия данные типичной рабочей нагрузки уменьшаются в несколько раз, поэтому «сжатый своп» фактически расширяет полезный объём RAM. В этой статье разберём принцип работы механизма, его плюсы и ограничения, а также как настроить его в разных системах.

Как работает подкачка в сжатой области памяти

Классический файл подкачки (pagefile или swap) — это область на диске, куда операционная система выгружает страницы памяти, которые давно не использовались. Проблема в том, что даже быстрый NVMe-накопитель на порядки медленнее оперативной памяти, а при активном свопинге система начинает заметно «тормозить».

Сжатый RAM-диск решает эту проблему иначе. Система создаёт виртуальное блочное устройство, физически расположенное в оперативной памяти, но все записываемые в него страницы предварительно сжимаются. Типичные рабочие данные — текст, код, кэш приложений — сжимаются в 2–3 раза и более, поэтому фактический расход RAM оказывается значительно меньше объёма выгруженных данных.

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

💡

Подкачка в сжатом RAM-диске обменивает часть ресурсов процессора на эффективное увеличение объёма оперативной памяти и избавляет систему от медленных обращений к диску при свопинге.