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