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: как форум показал разрыв между дипломатией и реальными барьерами

ПМЭФ-2026: как форум показал разрыв между дипломатией и реальными барьерами

На ПМЭФ-2026 высокие переговоры о ресурсах и суверенитете столкнулись с бытовыми реалиями: потерянные документы, драки за интервью и отсутствие глав европейских государств. Африканские делегаты приехали с конкретными запросами, но их реализация зависит от политической воли.

NVIDIA RTX Spark: что обещает новый чип и почему он не для всех

NVIDIA RTX Spark: что обещает новый чип и почему он не для всех

NVIDIA RTX Spark объединяет ARM-процессор Grace и графику Blackwell на одной подложке с 128 ГБ памяти и 1 Пфлопсом FP4. Но без дискретной графики и с Windows on ARM платформа подойдёт только тем, кто готов мириться с ограничениями ради AI-возможностей.

Headroom: как сжать контекст для LLM без потери данных

Headroom: как сжать контекст для LLM без потери данных

Headroom сжимает выводы инструментов, логи и JSON-структуры перед отправкой в LLM, сокращая токены на 60–95% без потери точности. Работает как прокси, библиотека или обёртка для агентов и поддерживает обратимое сжатие через локальный кэш.

Ubuntu Sway Remix 26.04 LTS: что обещает и чем рискует неофициальный дистрибутив

Ubuntu Sway Remix 26.04 LTS: что обещает и чем рискует неофициальный дистрибутив

Неофициальный Ubuntu Sway Remix 26.04 LTS предлагает готовый к использованию Sway на базе Ubuntu LTS без Snap и с поддержкой ARM и NVIDIA. Но поддержка проекта может завершиться уже в ноябре 2026 года, и пользователям стоит готовиться к миграции.