Swap и zswap в Linux: подробный гайд по ускорению системы и настройке памяти 2026

Всё о swap и zswap в Linux: в чем разница, как они влияют на производительность, какой компрессор выбрать и как правильно настроить систему.

2026.06.25                  


Swap и zswap в Linux: подробный гайд по ускорению системы и настройке памяти 2026Swap и zswap в Linux: подробный гайд по ускорению системы и настройке памяти 2026

1. Классический Swap (Подкачка)

Swap — это пространство на жестком диске (HDD, SATA SSD или NVMe), которое используется, когда оперативная память (ОЗУ) заполняется.


Как это работает:

Когда ядру Linux не хватает физической памяти, оно выбирает наименее используемые страницы памяти (cold pages) и записывает их на диск, освобождая место в ОЗУ для активных задач. Когда программа снова обратится к этим данным, они считаются с диска обратно в RAM.


Минусы классического swap:

Низкая скорость:

Даже самые быстрые современные NVMe SSD в десятки раз медленнее оперативной памяти. Если у вас стоит HDD или старый SSD, система при активном использовании swap начинает сильно «тормозить» (возникает swap trashing).

Износ диска:

Постоянная перезапись ячеек памяти снижает ресурс SSD.


2. Что такое zswap?

zswap — это не замена классическому swap, а легковесный сжатый кэш для страниц, которые отправляются в подкачку. Он выступает в роли «прокладки» между оперативной памятью и диском.


Как это работает:

  1. Когда ядру нужно выгрузить страницу памяти, оно не пишет её сразу на диск.
  2. Вместо этого страница сжимается с помощью выбранного алгоритма (например, zstd, lz4 или lzo).
  3. Сжатая страница помещается в динамически выделяемый пул в оперативной памяти (zswap pool).
  4. Запись на диск происходит только тогда, когда этот пул в ОЗУ переполняется. В этот момент zswap вытесняет (evict) самые старые сжатые страницы из пула на классический swap-раздел или swap-файл.

Главная суть:

zswap жертвует небольшим количеством ресурсов процессора (на сжатие/распаковку) ради колоссальной экономии операций ввода-вывода (I/O) диска.


3. Главные отличия Swap от zswap

Характеристика Классический Swap zswap
Местоположение Только на диске Кэш в ОЗУ + диск для вытеснения
Скорость чтения/записи Ограничена скоростью диска Ограничена скоростью ОЗУ + CPU
Нагрузка на диск Высокая (особенно при нехватке RAM) Минимальная (диск используется редко)
Нагрузка на CPU Почти нулевая Есть (тратится на сжатие и распаковку)
Износ SSD Снижает ресурс Продлевает ресурс SSD
Требования Не требует настроенного swap Требует включенного классического swap как backing device

4. Производительность в 2026 году (и для вашего ПК)

В современных ядрах Linux (серии 6.x, актуальных в 2026 году) подсистема памяти была сильно оптимизирована (в том числе за счет внедрения поддержки folio — групп страниц).


Как это влияет на вашу систему:

Плюс zswap:

Процессор AMD часто работает в паре с SATA SSD или HDD, избегание обращений к диску даст огромный прирост отзывчивости системы. Интерфейс и программы перестанут «задумываться», когда заканчивается память.


Нюанс с компрессором:

Сжатие и распаковка потребляют процессорное время. В 2026 году стандартом де-факто для zswap является алгоритм zstd (отличное сжатие, хорошая скорость). Однако для вашего процессора zstd может создавать заметную нагрузку.


Совет:

Если вы почувствуете, что процессор загружен на 100% в моменты нехватки памяти, переключите компрессор zswap на lz4. Он сжимает чуть хуже (в ОЗУ поместится меньше данных), но распаковывает и сжимает молниеносно, что идеально для не самых новых CPU.


5. Как настроить и включить zswap в Linux

По умолчанию во многих современных дистрибутивах (Ubuntu, Fedora, Arch) zswap уже включен, но параметры можно оптимизировать.

1. Проверить статус:

cat /sys/module/zswap/parameters/enabled

(Если Y — включено, N — выключено).


2. Включить (если выключено):

echo 1 | sudo tee /sys/module/zswap/parameters/enabled

3. Выбрать компрессор (рекомендуется zstd или lz4):

# Проверить доступные компрессоры (нужен модуль crypto)
cat /proc/crypto | grep name | sort | uniq

# Установить zstd (или lz4)
echo zstd | sudo tee /sys/module/zswap/parameters/compressor

4. Настроить максимальный размер пула в ОЗУ:

По умолчанию zswap может занимать до 20% от объема вашей оперативной памяти. Если у вас 8 ГБ ОЗУ, пул займет до 1.6 ГБ.

# Посмотреть текущий лимит (в процентах)
cat /sys/module/zswap/parameters/max_pool_percent

# Изменить, например, на 25% (если ОЗУ мало, можно уменьшить до 15%)
echo 25 | sudo tee /sys/module/zswap/parameters/max_pool_percent

5. Сохранение настроек после перезагрузки:

Чтобы не вводить эти команды каждый раз, создайте файл конфигурации:

sudo nano /etc/modprobe.d/zswap.conf

Вставьте туда:

options zswap enabled=1 compressor=zstd max_pool_percent=20

6. Важное уточнение: zswap vs zram

Очень часто эти понятия путают.

  • zswap — это кэш поверх обычного swap-файла/раздела на диске. Он требует, чтобы классический swap был включен.
  • zram — это создание сжатого блочного устройства прямо в оперативной памяти. Он вообще не использует диск (диск не нужен даже для вытеснения).

Что выбрать?

  • Если у вас быстрый NVMe SSD и много ОЗУ (16+ ГБ) — используйте классический swap + zswap.
  • Если у вас мало ОЗУ (4-8 ГБ), медленный HDD/SD-карта, или вы хотите полностью отключить дисковый swap для экономии ресурса — используйте zram (в многих дистрибутивах есть пакет zram-tools или systemd-zram-generator).

Итог

zswap — это великолепный инструмент, который позволяет обмануть систему: она «думает», что скидывает память на медленный диск, но на самом деле данные лежат в быстрой сжатой оперативной памяти. Включение zswap (особенно с компрессором lz4 или zstd) станет отличным способом продлить жизнь накопителю и избавиться микрофризов при высокой нагрузке.


Мы делимся этой технической информацией, чтобы помочь вам в решении задач — используйте её с пониманием. Статья носит рекомендательный характер, поэтому, пожалуйста, применяйте описанные методы осмотрительно.


Статью подготовил: Денис Аверко @Nymexis г. Омск

Комментарии

Загрузка...
Если комментарии не загружаются, можете попробовать отключить блокировщик рекламы для этого сайта