TGViewer
Записки IT специалиста Записки IT специалиста @interface31 · 8.99K subscribers
Post #5610 2.76K
Настраиваем ZSWAP для улучшения производительности системы

Вчера мы рассказывали о ZRAM, как эффективном способе улучшить производительность ПК с небольшим объемом оперативной памяти за счет ее сжатия.

Сегодня расскажем о другой технологии – ZSWAP, которая позволяет создать также в оперативной памяти сжатый кеш страниц для файла подкачки.

Многие путают эти технологии, которые имеют разный принцип действия и разные назначения. Поэтому начнем с краткого ликбеза.

🔹 ZRAM – создает в памяти отдельное блочное устройство, которое использует как пространство подкачки с наивысшим приоритетом. Выгода получается за счет сжатия помещаемых в него данных.

Скажем у нас есть ПК с 2 ГБ ОЗУ, мы оставляем 1 ГБ, а на еще 1 ГБ создаем устройство ZRAM. Памяти остается мало, и система начинает свопить на устройство ZRAM. Но это та же оперативная память, поэтому происходит это практически также быстро, как доступ в память напрямую.

Но за счет сжатия мы можем поместить туда больше данных, так при типичном коэффициенте сжатия 2-3 мы получаем аналог ПК с 3-4 ГБ ОЗУ, что существенно улучшает быстродействие.

🔹 Теперь о ZSWAP, это именно сжатый горячий кеш дискового пространства подкачки в ОЗУ, и работает он именно как кеш. Холодные данные из него разжимаются и сбрасываются на диск.

Его основная цель – улучшить взаимодействие системы и пространства подкачки сократив дисковые операции, тем самым получив повышение производительности.

Но это не означает, что сначала будет до упора использоваться кеш, а только потом диск. Нет, кеш работает по принципу веса и частоты обращения к данным, поэтому это не прямой аналог и не замена ZRAM.

Перед тем как включать данную технологию посмотрим какие возможности поддерживаются, в первую очередь нас интересуют доступные алгоритмы сжатия. Для этого выполните:

cat /boot/config-`uname -r` | grep -i zswap


В выводе будет что-то вида:

CONFIG_ZSWAP=y
# CONFIG_ZSWAP_DEFAULT_ON is not set
CONFIG_ZSWAP_SHRINKER_DEFAULT_ON=y
# CONFIG_ZSWAP_COMPRESSOR_DEFAULT_DEFLATE is not set
CONFIG_ZSWAP_COMPRESSOR_DEFAULT_LZO=y
# CONFIG_ZSWAP_COMPRESSOR_DEFAULT_842 is not set
# CONFIG_ZSWAP_COMPRESSOR_DEFAULT_LZ4 is not set
# CONFIG_ZSWAP_COMPRESSOR_DEFAULT_LZ4HC is not set
# CONFIG_ZSWAP_COMPRESSOR_DEFAULT_ZSTD is not set
CONFIG_ZSWAP_COMPRESSOR_DEFAULT="lzo"
CONFIG_ZSWAP_ZPOOL_DEFAULT_ZSMALLOC=y
CONFIG_ZSWAP_ZPOOL_DEFAULT="zsmalloc"


Первая строка обозначает что ZSWAP поддерживается ядром, далее идут перечисления доступных алгоритмов сжатия, мы видим, что по умолчанию включен LZO, однако в настоящее время наиболее оптимально использовать представляющий лучшее сочетание скорости и сжатия ZSTD.

В качестве аллокатора используется zsmalloc, который оптимален для управления сильно фрагментированными наборами малых файлов.

Теперь включим сам ZSWAP, для этого откроем /etc/default/grub и найдем там строку GRUB_CMDLINE_LINUX_DEFAULT, обычно в ней уже есть параметры, например:

GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"


Через пробел добавим еще несколько, приведя строку к виду:

GRUB_CMDLINE_LINUX_DEFAULT="quiet splash zswap.enabled=1 zswap.compressor=zstd zswap.max_pool_percent=10 zswap.zpool=zsmalloc"


Разберем добавленные параметры:

▫️zswap.enabled=1 – включает ZSWAP
▫️zswap.compressor=zstd – выбирает механизм компрессии, в нашем случае zstd
▫️zswap.max_pool_percent=10 – указывает доступный процент памяти для использования, по умолчанию 20
▫️zswap.zpool=zsmalloc – определяет используемый аллокатор, в нашем случае можно не указывать, так как zsmalloc стоит по умолчанию.

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

update-grub


И перезагружаем компьютер.

Проверяем:

cat /sys/module/zswap/parameters/enabled
cat /sys/module/zswap/parameters/compressor
cat /sys/module/zswap/parameters/max_pool_percent
cat /sys/module/zswap/parameters/zpool


В ответ должны получить Y, zstd, 10 и zsmalloc.

Посмотреть использование и эффективность можно командой:

grep -i zswap /proc/meminfo


Указанные параметры – не догма, вы можете (и должны) их выбирать исходя из реальных параметров и показателей вашей системы.
  • 👍 30
More from @interface31
  1. Oct 2, 2026Post #6832
  2. Oct 2, 2026Без лишнего шума и пыли вышла Aspia 3.0. Ключевые изменения в выжимке ниже: 1️⃣ Архитектур…
  3. Oct 2, 2026Post #6826
  4. Oct 1, 2026V2V миграция при помощи Vinchin Backup & Recovery Виртуализация сегодня – норма жизни, даж…
  5. Oct 1, 2026Post #6822
  6. Oct 1, 2026Проблема, как и статья не новая, но регулярно возникают вопросы. Не включается сетевое обн…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →