Якщо ноутбук з 4–8 ГБ RAM інколи «задумується», а на диску — SSD, вам майже напевно допоможе ZRAM. Це стиснутий swap у пам’яті: система тримає частину даних у RAM, але в стислому вигляді, тож отримуємо швидку «віртуальну» пам’ять без зайвих записів на SSD. Далі покажу, як увімкнути ZRAM на Ubuntu/Debian, підібрати розмір і алгоритм стиснення, перевірити роботу та уникнути типових помилок. 🚀

Що таке ZRAM і чому це прискорює систему

ZRAM створює в оперативній пам’яті спеціальний блоковий пристрій /dev/zram0, який використовується як швидкий swap. Дані стискаються «на льоту», тому ви отримуєте більше ефективної пам’яті та менше звернень до повільнішого дискового swap-файла. Це покращує відгук системи, знижує знос SSD і часто відчутно допомагає багатовкладковому браузеру чи IDE. Це — проста і дієва оптимізація продуктивності.

Крок-за-кроком: ZRAM через systemd-zram-generator

Найчистіший спосіб для Ubuntu/Debian — пакет systemd-zram-generator. Потрібні права sudo і базові навички роботи через термінал Linux.

1) Встановити пакет

sudo apt update
sudo apt install -y systemd-zram-generator

2) Створити конфіг

Приклад нижче створює ZRAM розміром до 8 ГБ, але не більше половини RAM, з алгоритмом zstd і високим пріоритетом swap (щоб він використовувався раніше за дисковий):

sudo tee /etc/systemd/zram-generator.conf > /dev/null <<'EOF'
[zram0]
zram-size = min(8G, ram / 2)
compression-algorithm = zstd
swap-priority = 100
EOF

3) Увімкнути й запустити

sudo systemctl daemon-reload
sudo systemctl start dev-zram0.swap
sudo systemctl enable dev-zram0.swap
sudo systemctl status dev-zram0.swap --no-pager

4) Перевірити

swapon --show --bytes --output=NAME,TYPE,SIZE,USED,PRIO
zramctl

У виводі має бути /dev/zram0 з типом partition або zram і високим пріоритетом (~100). Якщо одночасно існує дисковий swap, переконайтесь, що його пріоритет нижчий.

5) Тюнінг swappiness (необов’язково)

Щоб ядро охочіше використовувало ZRAM, збільшимо vm.swappiness (типове значення 60). 80 — безпечний старт:

sudo tee /etc/sysctl.d/99-zram-tuning.conf > /dev/null <<'EOF'
vm.swappiness=80
EOF
sudo sysctl --system | grep swappiness

Альтернативні способи

Варіант A: zram-tools (Ubuntu)

Простий демон, що сам створює і керує ZRAM. Зручно для робочих станцій.

sudo apt update
sudo apt install -y zram-tools
sudo nano /etc/default/zramswap

Рекомендовані рядки конфігу:

PERCENT=50
ALGO=zstd
PRIORITY=100
sudo systemctl restart zramswap
swapon --show

Варіант B: ZSWAP (альтернатива на рівні ядра)

ZSWAP — це не окремий swap, а стиснений кеш перед дисковим swap. Він теж зменшує записи на SSD, але не замінює ZRAM. Зазвичай достатньо чогось одного. Увімкнути через GRUB (для досвідчених):

sudo nano /etc/default/grub

Додайте до GRUB_CMDLINE_LINUX:

zswap.enabled=1 zswap.compressor=zstd zswap.max_pool_percent=25
sudo update-grub
sudo reboot

Не рекомендую паралельно агресивно вмикати і ZRAM, і ZSWAP без тестів — це може дати зворотний ефект.

GUI-спосіб (перевірка і моніторинг)

Спеціальної офіційної GUI-утиліти для керування ZRAM немає, але зручно спостерігати використання пам’яті через «Системний монітор» GNOME або htop. Це корисно для Linux моніторинг.

sudo apt install -y htop
htop

У «Memory/Swap» видно, як система використовує ZRAM. Також можна шукати «System Monitor» у меню програм. 🧠

FAQ

Чим ZRAM відрізняється від ZSWAP?

ZRAM — окремий стиснутий swap у RAM. ZSWAP — стиснений проміжний буфер перед дисковим swap. ZRAM швидше, бо не звертається до диска; ZSWAP зменшує обсяг записів на диск, але при активному свопінгу диск все одно використовується.

Який розмір ZRAM обрати?

Типово: 50–100% від RAM. Якщо у вас 4 ГБ — 2–4 ГБ; 8 ГБ — 4–8 ГБ, але я раджу обмежити до 8 ГБ для десктопа. У прикладі вище: min(8G, ram/2).

Який алгоритм кращий: lz4 чи zstd?

lz4 дуже швидкий, zstd краще стискає (часто вигідніше на ноутбуках). Подивіться доступні алгоритми:

cat /sys/block/zram0/comp_algorithm

Позначка в квадратних дужках вкаже активний алгоритм.

/dev/zram0 не з’явився. Що робити?

lsmod | grep zram || sudo modprobe zram
sudo systemctl restart dev-zram0.swap
journalctl -u dev-zram0.swap -b --no-pager

Перевірте синтаксис /etc/systemd/zram-generator.conf і чи встановлено пакет.

Як зробити так, щоб спочатку використовувався ZRAM, а потім дисковий swap?

Надайте ZRAM вищий пріоритет (наприклад, 100), а дисковому swap — нижчий (наприклад, 10 або менше):

sudo swapoff -a
sudo swapon -p 100 /dev/zram0
sudo swapon -p 10 /swapfile
swapon --show --output=NAME,PRIO

Команда zramctl не знайдена

Вона входить до util-linux (має бути за замовчуванням). Якщо раптом видалена:

sudo apt install -y util-linux

Порада від Kernelka

Для ноутбуків з 8 ГБ RAM і типового навантаження (браузер + офіс + месенджери) встановіть ZRAM на 4–6 ГБ, алгоритм zstd, vm.swappiness=80, дисковому swap дайте пріоритет 10. Так ви отримаєте плавніший відгук і мінімальний знос SSD. А ще тримайте під рукою поради Linux: періодично перевіряйте swapon --show і htop, щоб розуміти реальне навантаження.

Підсумок

  • ZRAM = швидкий стиснутий swap у RAM, менше записів на SSD.
  • Найзручніше вмикати через systemd-zram-generator.
  • Оптимальні налаштування: zstd, пріоритет ZRAM > дискового swap, vm.swappiness≈80.
  • Альтернатива: zram-tools або ZSWAP (але тестуйте окремо).
  • Перевіряйте роботу через swapon --show, zramctl, htop для якісного Linux моніторинг.