Настройка ZRAM в Ubuntu 24.04 LTS на VPS

Настройка ZRAM в Ubuntu 24.04 LTS на VPS

ZRAM — это технология, которая делает из части оперативной памяти файл подкачки и при этом сжимает данные в 2-3 раза. Рассказываем, как включить и настроить ZRAM на Ubuntu 24.04 и как использовать ZRAM в сочетании с обычным swap.

Введение

ZRAM — это технология сжатия данных в оперативной памяти. Вместо того чтобы выгружать неактивные данные в swap на более медленный диск, система с ZRAM временно сжимает их в RAM. Это ускоряет работу системы и позволяет эффективнее использовать память — особенно на VPS с ограниченными ресурсами (1–2 ГБ ОЗУ и медленным диском).

В этой статье мы разберём, как включить и настроить ZRAM на VPS с Ubuntu 24.04, как его проверить и как при необходимости комбинировать с классическим swap.

Аренда VPS/VDS — от ₽219/месяц

Почему выбирают VPS от AdminVPS:

✓ Дешевле физического сервера

✓ Более гибкий и мощный, чем обычный хостинг

✓ Бесплатная защита от DDoS и техподдержка 24/7

✓ Масштабируется под любые задачи

Виртуальный сервер VPS/VDS — ваш личный сервер для сайтов, магазинов, ботов и других проектов.

Как работает 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-устройств

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

zramctl показывает технические характеристики и текущую нагрузку на zram-устройство:

Технические характеристики zram-устройства

Мы видим, что:

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

free -h показывает общее использование оперативной памяти и swap:

Использование оперативной памяти и 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/soswap in/out. В норме — близкое к нулю или низкое значение. Если значения высокие — значит система активно читает/пишет swap и стоит пересмотреть настройки.

Что считается нормальным поведением:

  • ZRAM используется, особенно при загрузке в оперативной памяти выше 70–80 %;
  • swap на диске не используется или используется минимально;
  • si/so в vmstat = 0 или близко к нулю;
  • ZRAM сжимает в 2–3 раза — значит, вы выигрываете в объёме RAM;
  • Нет большого iowait.

Читайте в блоге:

Loading spinner
0 Комментарий
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии

VPN на VPS-сервере

Узнайте, как создать собственный VPN на VPS-сервере для защиты ваших конфиденциальных данных!

Что будем искать? Например,VPS-сервер

Мы в социальных сетях