ZRAM — это технология, которая делает из части оперативной памяти файл подкачки и при этом сжимает данные в 2-3 раза. Рассказываем, как включить и настроить ZRAM на Ubuntu 24.04 и как использовать ZRAM в сочетании с обычным swap.
Введение
ZRAM — это технология сжатия данных в оперативной памяти. Вместо того чтобы выгружать неактивные данные в swap на более медленный диск, система с ZRAM временно сжимает их в RAM. Это ускоряет работу системы и позволяет эффективнее использовать память — особенно на VPS с ограниченными ресурсами (1–2 ГБ ОЗУ и медленным диском).
В этой статье мы разберём, как включить и настроить ZRAM на VPS с Ubuntu 24.04, как его проверить и как при необходимости комбинировать с классическим swap.
Как работает ZRAM
ZRAM — это механизм в ядре Linux, который создаёт сжатое блочное устройство в оперативной памяти. На это устройство можно направить swap, и система начнёт выгружать туда неактивные данные. По сути, вместо записи на диск данные временно сжимаются и сохраняются в RAM.
Для виртуальных серверов ZRAM полезен тем, что снижает количество операций записи на диск, продлевая его срок службы (важно для SSD) и сокращая задержки при нехватке памяти. В отличие от обычного swap, который может тормозить систему, ZRAM работает быстрее, но использует часть RAM и CPU для сжатия. Он отлично подходит для незагруженных VPS, а в более требовательных сценариях его можно использовать вместе с обычным swap-файлом.
Обычно ZRAM использует алгоритмы сжатия zstd или lz4. Например, при использовании zstd в 1 ГБ ZRAM может поместиться 2–3 ГБ реальных данных, в зависимости от их структуры.
Актуальное состояние ZRAM в Ubuntu 24.04
В Ubuntu 24.04 поддержка ZRAM присутствует из коробки, но по умолчанию он не активен: zram-устройства нужно настраивать вручную.
Способы включения ZRAM:
- Официальный способ — пакет zram-tools.
Это способ, рекомендованный Ubuntu. Пакет устанавливается через APT, интегрируется с systemd и автоматически создаёт swap-раздел в RAM при загрузке. Этот способ мы и рассмотрим в статье.
- Ручная настройка через zramctl.
Гибкое управление ZRAM. Подходит для продвинутых сценариев, временного тестирования или кастомных конфигураций.
- Через systemd-zram-generator.
Альтернативный способ для systemd-ориентированных дистрибутивов. Используется в Arch и Fedora, а в Ubuntu требует дополнительной настройки. Не является официальным способом для Ubuntu, но иногда его используют при построении собственных образов или кастомной автоматизации.
Настройка ZRAM с помощью zram-tools
zram-tools — официальный инструмент от Ubuntu, который позволяет быстро и безопасно активировать ZRAM, используя возможности systemd и рекомендуется для большинства случаев.
Шаг 1. Обновляем систему
Перед установкой пакетов убедимся, что система актуальна:
sudo apt update && sudo apt upgrade -y
Это гарантирует, что вы установите последние версии zram-tools и связанных компонентов.
Шаг 2. Установка пакета zram-tools
sudo apt install zram-tools
После установки в систему добавляется системный сервис zramswap.service, который автоматически активирует zram-раздел при загрузке. Также создаётся конфигурационный файл /etc/default/zramswap.
zram-tools автоматически:
- создаёт zram-устройство в RAM,
- инициализирует его как swap-раздел,
- монтирует и активирует swap с заданным приоритетом,
- использует systemd-юнит zramswap.service для управления при загрузке.
Шаг 3. Настройка
Редактируем файл /etc/default/zramswap:
sudo nano /etc/default/zramswap
Пример содержимого:
ALGO=lz4
PERCENT=50
PRIORITY=100
Разберём параметры:
- ALGO=lz4 — сжатие lz4 подходит для большинства случаев. Можно указать zstd, если важнее эффективность сжатия, чем скорость.
- PERCENT=50 — столько процентов от объёма RAM выделяется под ZRAM. Можно выставить, например, 75 — но помните: zram использует ту же RAM, которую он должен экономить.
- PRIORITY=100 — приоритет использования. Чем выше число, тем раньше ядро будет использовать этот swap, если в системе присутствуют другие (например, обычный swap-файл). Установите меньшее значение, если хотите, чтобы ZRAM был резервным источником, и наоборот — выше, если он должен быть основным.
Шаг 4. Перезапуск службы zramswap
После сохранения изменений в конфигурации перезапустите сервис:
sudo systemctl restart zramswap
Для надёжности можно также перезапустить весь swap:
sudo swapoff -a && sudo swapon -a
Шаг 5. Проверка
Убедитесь, что zram-устройство успешно создано:
swapon --show
Ожидаемый вывод:

Проверьте более подробную информацию через:
zramctl
Пример вывода:

Теперь ваша система использует сжатый swap в RAM, и при нехватке оперативной памяти ядро попробует освободить её, переместив часть данных в ZRAM.
Настройка обычного swap совместно с ZRAM
Хотя ZRAM часто полностью заменяет классический swap-файл, иногда имеет смысл использовать их в связке. Обычный swap можно рассматривать как вторичный буфер после ZRAM — он медленнее, но полезен при активном использовании памяти.
Когда стоит добавить swap-файл:
- Мало оперативной памяти (до 1 ГБ) и ZRAM не всегда справляется.
- Работают тяжёлые приложения, способные заполнить даже сжатую память (например, компиляция, Python с большими объектами, базы данных).
- Сервер должен выдерживать кратковременные всплески нагрузки, не теряя стабильности.
- Хостинг отключает процессы при OOM (Out Of Memory) — swap помогает системе не достигать критического порога.
Когда обычный swap не обязателен:
- У вас 2 ГБ RAM или больше и нагрузка стабильна.
- ZRAM справляется со всеми задачами, и вы не замечаете сбоев или подвисаний.
- Вы используете оптимизированные приложения, которые не расползаются по памяти.
- Системе не требуется буфер на диске — например, она только обрабатывает запросы с небольшими ответами.
Как работает совместная схема. При наличии обоих механизмов, ядро Linux ориентируется на приоритет swap-устройств. Обычно ZRAM получает высокий приоритет (например, 100) — и используется в первую очередь, а дисковый swap с низким приоритетом (например, 10) задействуется, только если ZRAM уже заполнен. Такое поведение можно настроить вручную в конфигурации или при активации swap.
Мы подробно разобрали установку, конфигурацию и проверку swap в отдельной статье — «Настройка swap в Ubuntu 24.04 на VPS»
Проверка и мониторинг
После настройки ZRAM (и, при необходимости, обычного swap) убедитесь, что всё работает корректно: swap-устройства активны, приоритеты выставлены, а система использует ресурсы разумно.
Команда swapon --show показывает список активных swap-устройств, их размер, использование и приоритет:

По выводу видно, что активны два swap-устройства: /dev/zram0 и обычный swapfile. ZRAM уже используется (80 МБ), swap на диске не задействован. Приоритет ZRAM выше (100 против 10), то есть система сначала использует его.
zramctl показывает технические характеристики и текущую нагрузку на zram-устройство:

Мы видим, что:
- алгоритм сжатия — lz4,
- логический объём — 512 МБ,
- объём данных до сжатия — 150 МБ,
- объём после сжатия — 60 МБ,
- объём реально используемой RAM — 70 МБ (сюда входит служебная информация).
free -h показывает общее использование оперативной памяти и swap:

В выводе — 980 МБ RAM, из них 710 МБ занято, 80 МБ — свободно, 190 МБ кешируется. Swap (ZRAM + swapfile) в сумме 1,5 ГБ, используется 80 МБ.
top, htop — команды позволяют в режиме реального времени видеть загрузку памяти, swap, процессов.
В htop включите отображение ZRAM, если это доступно (в зависимости от версии). Для этого запустите htop. Откройте меню настройки, нажмите F2 (или Setup в верхнем меню). Перейдите в раздел Available Columns (правое меню). Найдите следующие метрики (используйте стрелки, чтобы перейти к нужным пунктам):
- Swap — общий swap (ZRAM + swap-файл/раздел, если есть).
- Swap Used — сколько swap используется процессом.
- Swapped — если доступен, показывает процент процесса, выгруженного в swap.
Добавьте метрики в отображаемые колонки: выделите нужную метрику и нажмите F5 (или →), чтобы переместить её в список Active Columns. Используйте F6 (или +/-), чтобы изменить порядок колонок. Затем нажмите F10 для выхода и сохранения конфигурации.
В htop ZRAM отображается как часть swap. Чтобы отличать его от обычного swap, используйте swapon --show и zramctl вместе с htop.
Команда vmstat 1 — для оценки поведения системы под нагрузкой. Вывод обновляется каждую секунду:

Ключевые поля:
- swpd — сколько swap используется (в КБ);
- si/so — swap in/out. В норме — близкое к нулю или низкое значение. Если значения высокие — значит система активно читает/пишет swap и стоит пересмотреть настройки.
Что считается нормальным поведением:
- ZRAM используется, особенно при загрузке в оперативной памяти выше 70–80 %;
- swap на диске не используется или используется минимально;
- si/so в vmstat = 0 или близко к нулю;
- ZRAM сжимает в 2–3 раза — значит, вы выигрываете в объёме RAM;
- Нет большого iowait.
Читайте в блоге:
- CI/CD на базе Ubuntu 24.04 LTS: GitHub Actions, Docker, NGINX
- Ansible с Ubuntu 24.04: быстрый старт автоматизации
- Ubuntu 24.04 LTS против 22.04: стоит ли обновляться