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

Четырёхдневка против пятницы: почему усталость — это не лень, а системный сбой

Четырёхдневка против пятницы: почему усталость — это не лень, а системный сбой

В пятницу сотрудники допускают на 19% больше ошибок, а их активность падает — не из-за лени, а из-за накопившихся встреч, размытых приоритетов и иллюзии занятости. Исследования из Германии, ОАЭ и США показывают, что четырёхдневная неделя не снижает производительность, а помогает избавиться от «мусо…

Почему NFS остаётся актуальным в 2026 году

Почему NFS остаётся актуальным в 2026 году

Созданный в 1984 году, протокол NFS продолжает использоваться в Unix-окружениях благодаря высокой производительности и надёжности. Мы разберём его эволюцию от NFSv2 до NFSv4.2, сравним с SMB, рассмотрим типичные проблемы и сценарии применения, где NFS остаётся лучшим выбором.

Как Мэтью Галлахер построил телемедицинскую империю на $401 млн с двумя сотрудниками и ИИ

Как Мэтью Галлахер построил телемедицинскую империю на $401 млн с двумя сотрудниками и ИИ

Без медицинского образования и с $20 000 личных сбережений Мэтью Галлахер создал платформу Medvi, которая за 18 месяцев достигла $401 млн выручки и 250 000 клиентов. Ключ к успеху — автоматизация с помощью ИИ и партнёрства вместо собственных отделов. Как это работает и какие риски таит такая модель?