Linux

Настройка ZRAM в Linux: ускорение системы без апгрейда

ZRAM — это технология сжатия данных в оперативной памяти, которая создаёт эффективный swap-устройство без диска. В этом гайде вы научитесь настраивать ZRAM в Linux, чтобы ускорить работу системы на устройствах с малым объёмом ОЗУ.

Обновлено 14 февраля 2026 г.
15-30 мин
Средняя
FixPedia Team
Применимо к:Ubuntu 20.04+Debian 11+Fedora 35+Arch LinuxRHEL 8+

Что такое ZRAM и зачем она нужна?

ZRAM (ранее известная как compcache) — это технология ядра Linux, которая создаёт сжатый блок в оперативной памяти и использует его как swap-устройство. Вместо записи данных на медленный жёсткий диск или SSD, система сжимает неиспользуемые страницы памяти и хранит их в RAM. Это особенно полезно для:

  • Старого железа с малым объёмом ОЗУ (2-4 ГБ).
  • Систем без диска (например, live-системы, встроенные устройства).
  • Виртуальных машин с ограниченными ресурсами.
  • Серверов, где нужно минимизировать операции ввода-вывода на диске.

ZRAM не заменяет полностью swap на диске в сценариях с гибернацией, но может стать основным или единственным swap-местом для большинства рабочих нагрузок, значительно ускорив отклик системы.

Проверка текущей конфигурации

Перед настройкой убедитесь, что в системе нет уже активной ZRAM и посмотрите текущие swap-устройства:

swapon --show

Если вывод пуст или содержит только /dev/sdX (диск), вы можете приступать. Также проверьте, загружен ли модуль ядра:

lsmod | grep zram

Если модуль не загружен, его можно загрузить вручную (sudo modprobe zram), но при правильной настройке через systemd это произойдёт автоматически.

Способ 1: Настройка через zram-tools (рекомендуется для Debian/Ubuntu)

Пакет zram-tools предоставляет готовый скрипт и службу systemd для управления ZRAM. Это самый простой путь.

Установка

Для Debian, Ubuntu и производных:

sudo apt update
sudo apt install zram-tools

Конфигурация

Основной конфигурационный файл — /etc/default/zramswap. Откройте его в текстовом редакторе:

sudo nano /etc/default/zramswap

Найдите и измените параметры:

  • PERCENT=50 — процент от общей ОЗУ, который займёт ZRAM. Для 4 ГБ ОЗУ это 2 ГБ. Можно задать абсолютный размер: DEV_SIZE=2G.
  • ALGO=lzo (или zstd) — алгоритм сжатия. zstd даёт лучшее сжатие, но требует больше CPU. lzo — быстрее.
  • SWAP_RATING=100 — приоритет swap-устройства (чем выше, тем активнее используется).

Пример конфигурации для 2 ГБ ZRAM с алгоритмом zstd:

# /etc/default/zramswap
PERCENT=0
DEV_SIZE=2G
ALGO=zstd
SWAP_RATING=100

Активация

После редактирования файла перезапустите службу:

sudo systemctl restart zramswap

Или включите её на автозагрузку и запустите сразу:

sudo systemctl enable --now zramswap

Проверьте результат:

free -h

В строке Swap вы должны увидеть размер, соответствующий DEV_SIZE.

Способ 2: Ручная настройка через systemd (универсальный)

Этот способ не требует установки дополнительных пакетов и работает на любом современном Linux с systemd.

Создание systemd-юнита

Создайте файл юнита:

sudo nano /etc/systemd/system/zram-setup.service

Вставьте следующее содержимое (настройте MemoryMax и CompressionAlgorithm под свои нужды):

[Unit]
Description=Setup ZRAM
After=local-fs.target

[Service]
Type=oneshot
RemainAfterExit=true
ExecStartPre=/sbin/modprobe zram num_devices=1
ExecStart=/bin/sh -c 'echo zstd > /sys/block/zram0/comp_algorithm'
ExecStart=/bin/sh -c 'echo 2G > /sys/block/zram0/disksize'
ExecStart=/sbin/mkswap /dev/zram0
ExecStart=/sbin/swapon /dev/zram0 -p 100

[Install]
WantedBy=multi-user.target
  • num_devices=1 — создаст одно устройство zram0.
  • echo zstd > ... — задаёт алгоритм сжатия (lzo, lz4, zstd).
  • echo 2G > ... — размер устройства (можно в МБ или ГБ).
  • swapon -p 100 — устанавливает высокий приоритет.

Активация

Включите и запустите службу:

sudo systemctl daemon-reload
sudo systemctl enable --now zram-setup.service

Проверьте статус:

sudo systemctl status zram-setup.service

Настройка параметров ядра

Для более эффективной работы ZRAM можно настроить параметры виртуальной памяти в /etc/sysctl.conf:

sudo nano /etc/sysctl.conf

Добавьте строки:

# Увеличиваем склонность системы использовать swap (включая ZRAM)
vm.swappiness = 100

# Уменьшаем давление на кеш inode/dentry (может помочь при нехватке RAM)
vm.vfs_cache_pressure = 50

# Оптимизация для ZRAM (если используется сжатие)
vm.page-cluster = 3

Примените настройки без перезагрузки:

sudo sysctl -p

Способ 3: Использование zram-generator (для Fedora, RHEL 8+, современных дистрибутивов)

Некоторые дистрибутивы поставляют zram-generator — инструмент, который генерирует systemd-юниты на основе конфига.

Установка

В Fedora/CentOS/RHEL 8+:

sudo dnf install zram-generator

Конфигурация

Отредактируйте /etc/systemd/zram-generator.conf:

# /etc/systemd/zram-generator.conf
[zram0]
zram-fraction = 0.5
compression-algorithm = zstd
swap-priority = 100
  • zram-fraction = 0.5 — 50% от ОЗУ.
  • Можно задать max-zram-size = 2G вместо дроби.

Перезагрузите систему или выполните:

sudo systemctl start /dev/zram0

Мониторинг и проверка работоспособности

После настройки убедитесь, что ZRAM активна и используется:

# Показать все swap-устройства
swapon --show

# Показать использование памяти в удобном виде
free -h

# Детальная статистика по zram0 (значения в байтах)
cat /sys/block/zram0/mm_stat

Поля в mm_stat (можно перевести в человекочитаемый вид через awk):

  • orig_data_size — исходный размер данных до сжатия.
  • compr_data_size — размер после сжатия.
  • mem_used_total — использовано памяти ZRAM (включая метаданные).
  • same_pages — количество страниц, которые не сжались (уже были сжаты/нулевые).

Пример расчёта коэффициента сжатия:

orig=$(cat /sys/block/zram0/mm_stat | awk '{print $1}')
compr=$(cat /sys/block/zram0/mm_stat | awk '{print $2}')
echo "scale=2; $orig / $compr" | bc

Коэффициент больше 1 означает, что сжатие работает.

Распространённые проблемы и их решение

ZRAM не активируется после перезагрузки

  • Причина: Служба не включена или конфигурационный файл содержит ошибки.
  • Решение: Проверьте sudo systemctl status zramswap (или вашего юнита). Посмотрите логи: sudo journalctl -u zram-setup.service. Убедитесь, что в конфиге указан корректный размер.

Система "зависает" при интенсивном использовании памяти

  • Причина: Слишком маленький размер ZRAM или неоптимальный алгоритм сжатия. При нехватке памяти система начинает активно сжимать/выгружать, что нагружает CPU.
  • Решение: Увеличьте размер ZRAM (например, с 1 ГБ до 2 ГБ для 4 ГБ ОЗУ). Попробуйте алгоритм lzo вместо zstd, если CPU слабый.

ZRAM не отображается в free

  • Причина: Устройство не инициализировано или не форматировано как swap.
  • Решение: Вручную выполните команды из Способ 2, особенно mkswap и swapon. Убедитесь, что модуль zram загружен: lsmod | grep zram.

Конфликт с другим swap-устройством

  • Причина: Обычно система использует swap с наивысшим приоритетом. Если у вас есть и диск, и ZRAM, то ZRAM с приоритетом 100 будет использоваться в первую очередь.
  • Решение: Это нормальное поведение. Если хотите использовать только ZRAM, отключите swap на диске: sudo swapoff /dev/sdX и закомментируйте соответствующую строку в /etc/fstab.

Заключение: что даёт вам ZRAM

Настройка ZRAM — это один из самых эффективных способов увеличить отзывчивость системы без апгрейда железа. Особенно это заметно на ноутбуках и ПК с 2-4 ГБ ОЗУ, где обычного swap на диске недостаточно, а дисковые операции тормозят всю работу.

После настройки вы получите:

  • Более быструю переключение между приложениями.
  • Меньше "тормозов" при открытии нескольких вкладок в браузере.
  • Снижение нагрузки на SSD/HDD (меньше записей swap).
  • Продление жизни старых устройств.

Помните, что ZRAM — это compressible RAM, а не замена дисковому пространству. Для хранения данных она не подходит, но как буфер для неактивной памяти — идеальна.

Часто задаваемые вопросы

ZRAM безопасна для SSD и флеш-накопителей?
Какой объём ZRAM лучше устанавливать?
ZRAM заменит полностью swap на диске?
Почему ZRAM не включается по умолчанию?

Полезное

Проверьте текущие swap-устройства
Установите необходимые пакеты
Настройте параметры ZRAM
Активируйте ZRAM
Настройте постоянную активацию
Проверьте работу и мониторинг