Zstd для swap: настройка zswap и zram в Linux

Zstandard (zstd) — современный алгоритм сжатия, который можно использовать для оптимизации swap в Linux через zswap и zram. Узнайте, как настроить сжатие страниц перед записью на диск или создать сжатый swap в оперативной памяти, чтобы снизить нагрузку на диск и ускорить доступ к данным.

Zstd для swap: настройка zswap и zram в Linux

Zstd для swap: где и как применять сжатие

Zstandard (zstd) — современный алгоритм сжатия, который используют не только для архивов, но и в ядре Linux. В Linux он поддерживается через механизмы zswap и zram, где zstd обеспечивает баланс между скоростью обработки и эффективностью сжатия. Для swap это означает возможность снизить нагрузку на диск или расширить доступную память без увеличения объёма RAM.


Zstd в zswap: сжатие страниц перед записью на диск

Zswap — это модуль ядра, который сжимает страницы памяти перед их записью в дисковый swap. Это ускоряет доступ к данным и снижает нагрузку на диск, особенно на медленных носителях. Zstd работает здесь как алгоритм сжатия по умолчанию, но его можно заменить на lzo, lz4, 842 или deflate, если приоритетом становится либо максимальная скорость, либо глубина сжатия.

Настройка начинается с проверки поддержки zswap в ядре. Если модуль включён, можно сразу задать используемый алгоритм:

echo zstd > /sys/module/zswap/parameters/compressor

Размер сжатого пула ограничивается параметром max_pool_percent — обычно достаточно 20% от общего объёма оперативной памяти:

echo 20 > /sys/module/zswap/parameters/max_pool_percent

Для постоянной настройки эти параметры добавляют в строку загрузки ядра через GRUB:

zswap.enabled=1 zswap.compressor=zstd zswap.max_pool_percent=20 zswap.zpool=zsmalloc

Здесь zpool определяет, как будет распределяться память для сжатых страниц. Доступные варианты: zsmalloc, z3fold или zbud.


Zstd в zram: сжатый swap в оперативной памяти

Zram создаёт сжатое блочное устройство в RAM, которое может полностью заменить дисковый swap или использоваться вместе с ним. Zstd входит в число рекомендуемых алгоритмов, особенно когда важнее скорость обработки, а не максимальная степень сжатия.

На Debian и Ubuntu zram настраивают через пакет zram-tools. В конфигурационном файле /etc/default/zramswap указывают алгоритм и размер пула в процентах от RAM:

ALGO=zstd
PERCENT=50

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

sudo systemctl restart zramswap
zramctl --output-all

Коэффициент сжатия зависит от содержимого данных — обычно это соотношение 1:2–1:4. Например, 1 ГБ zram может вместить 2–4 ГБ несжатых данных.


Когда выбирать zstd, а когда — другие алгоритмы

Zstd демонстрирует высокую скорость сжатия при сохранении хорошей степени уплотнения. Для сравнения:

Алгоритм Скорость сжатия Степень сжатия
zstd Очень высокая Очень высокая
lz4 Очень высокая Средняя
lzo Высокая Низкая
deflate Средняя Средняя
  • Для zswap zstd подходит, если нужен баланс между скоростью и эффективностью. Если система испытывает высокую нагрузку на CPU, можно использовать lz4 для снижения нагрузки.
  • Для zram zstd тоже оптимален, но в сценариях, где CPU — узкое место, lz4 может быть предпочтительнее.

Диагностика и мониторинг

Эффективность сжатия проверяют через системные интерфейсы.

Для zswap:

grep -r . /sys/kernel/debug/zswap/

В выводе отображаются:

  • stored_pages — количество сжатых страниц;
  • pool_total_size — размер пула в байтах;
  • written_back_pages — страницы, сброшенные на диск после сжатия.

Для zram:

zramctl --output-all

Отображаются:

  • NAME — имя устройства;
  • ALGORITHM — используемый алгоритм;
  • DISKSIZE — размер zram;
  • DATA и COMPR — объём данных до и после сжатия;
  • TOTAL — общий объём памяти, занятой устройством.

Ограничения и нюансы

Zswap не работает без дискового swap — он лишь сжимает страницы перед записью на диск. Если на системе нет swap-файла или раздела, zswap не даст эффекта.

Для zram важно помнить, что он использует часть RAM и CPU для сжатия. На системах с большим объёмом памяти (4 ГБ и более) выгода от сжатия может быть минимальной.

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


Практические сценарии применения

Zswap полезен на системах с медленными дисками — HDD или SSD с высокими задержками. Он снижает нагрузку на накопитель, продлевая срок его службы, и ускоряет доступ к swap.

Zram оптимален для виртуальных машин и контейнеров с малым объёмом RAM (1–2 ГБ). Он позволяет временно расширить доступную память без покупки дополнительных модулей RAM и без нагрузки на диск.

Правильная настройка zstd для swap требует учёта архитектуры системы, типа нагрузки и доступных ресурсов. В большинстве случаев zstd обеспечивает наилучший компромисс между производительностью и эффективностью.

Read more

Где в России бизнес выживает чаще: статистика и инфраструктурные зазоры

Где в России бизнес выживает чаще: статистика и инфраструктурные зазоры

В 2026 году в России регистрируют больше бизнесов, чем закрывают, но через пять лет выживает только 30% ООО и 22% ИП. Разница не в идеях, а в инфраструктуре: аренда, кредиты и налоги бьют по бизнесу с разной силой в зависимости от региона и отрасли.

Как найти прибыльную нишу и получить инвестиции без венчурных фондов

Как найти прибыльную нишу и получить инвестиции без венчурных фондов

Большие рынки быстро захватываются гигантами, а кредиты дорожают. Остаётся два пути: войти в подсегмент с высокой маржой или выбрать нишу, которую все игнорируют. Деньги для стартапов сегодня приходят не от фондов, а от синдикатов бизнес-ангелов.

Как построить работающий малый бизнес: маржа, команда и трезвый расчёт

Как построить работающий малый бизнес: маржа, команда и трезвый расчёт

Успех малого бизнеса зависит не от уникальности идеи, а от контроля маржи, тиражируемых процессов и работы на уже сформированном спросе. Две истории — Coca-Cola и авокадо в Австралии — показывают, почему попытки создать рынок с нуля оборачиваются потерями.