Swap и 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, а легковесный сжатый кэш для страниц, которые отправляются в подкачку. Он выступает в роли «прокладки» между оперативной памятью и диском.
Как это работает:
- Когда ядру нужно выгрузить страницу памяти, оно не пишет её сразу на диск.
- Вместо этого страница сжимается с помощью выбранного алгоритма (например,
zstd,lz4илиlzo). - Сжатая страница помещается в динамически выделяемый пул в оперативной памяти (zswap pool).
- Запись на диск происходит только тогда, когда этот пул в ОЗУ переполняется. В этот момент 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) станет отличным способом продлить жизнь накопителю и избавиться микрофризов при высокой нагрузке.
Мы делимся этой технической информацией, чтобы помочь вам в решении задач — используйте её с пониманием. Статья носит рекомендательный характер, поэтому, пожалуйста, применяйте описанные методы осмотрительно.