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

Agent Skills: как ИИ‑агенты соблюдают инженерные правила без ущерба для скорости

Agent Skills: как ИИ‑агенты соблюдают инженерные правила без ущерба для скорости

Набор из двадцати структурированных навыков превращает обещания ИИ‑агентов в факты: каждый workflow требует конкретных доказательств — тестов, сканов безопасности, PRD с критериями приёмки — и не даёт пропустить ни шаг.

Hindsight: как система памяти обучает ИИ-агентов без RAG

Hindsight: как система памяти обучает ИИ-агентов без RAG

Hindsight — первая открытая система памяти для ИИ-агентов, которая строит убеждения, а не просто ищет текст. На бенчмарке LongMemEval она показала 91,4% точности, обойдя RAG и SuperMemory. Как работает Retain, Recall и Reflect, и где система даёт сбои.

Техас против Meta и WhatsApp: как сквозное шифрование стало предметом судебного спора

Техас против Meta и WhatsApp: как сквозное шифрование стало предметом судебного спора

Генеральный прокурор Техаса обвинил Meta и WhatsApp в том, что сквозное шифрование создаёт «ложное чувство безопасности» и мешает расследованию преступлений. Иск ставит под угрозу принцип «приватности по умолчанию» и заставляет компании искать баланс между безопасностью пользователей и требованиями…

Аналитика данных в 2026 году: как перестать быть «галочкой» в резюме

Аналитика данных в 2026 году: как перестать быть «галочкой» в резюме

Рынок аналитиков данных перегружен кандидатами с шаблонными резюме. Работодатели теперь требуют не просто навыки, а подтвержденные примеры влияния на бизнес и работающие метрики. Как пройти ATS и не затеряться среди 19 резюме на место.