Зачем?
Если вы вдруг оказались с компьютером, в котором RAM распаяна, или все слоты уже использованы, или просто нет возможности добавить еще одну планку памяти, то существует простое решение, имя ему zram.
Я не буду подробно описывать все прелести zram, в интернете достаточно много информации о том, что это такое и как можно использовать. Здесь же я хочу предоставить короткую инструкцию, как быстро и просто "добавить" себе оперативной памяти в популярной ОС.
Что это?
Многие знают о существовании swap (файл подкачки), который начинает использоваться, когда оперативной памяти начинает не хватать. Я, как и многие, стараюсь избавляться от такой штуки, потому как swap использует для хранения данных наши ssd/hdd, что в свою очередь имеет минусы:
медленная скорость записи/чтения
убивает ресурс диска
Но если выключить swap, то мы рискуем повиснуть в тот момент, когда физическая память закончится, ведь магическим образом она ниоткуда не появится... Или появится?!
zram - технология сжатия оперативной памяти. По сути это тот же swap, только размещен он в оперативной памяти и к нему применяются алгоритмы сжатия. Разумеется магия здесь происходит за счёт процессорного времени, потому, хорошо бы иметь процессор вместо пакетика сока.
Делаем
Вся процедура заключается в том, что мы отключим swap и zswap, а затем установим и настроим zram. В моем случае системой является Ubuntu 22.04.
Отключаем swap
sudo swapoff /swapfile
Отключаем создание swap. Для этого закомментируем строку в /etc/fstab
sudo nano /etc/fstab
#/swapfile none swap sw 0 0
Удаляем более не нужный файл где у нас хранился swap
sudo rm -f /swapfile
Нужно отключить zswap если он у нас включен. Для этого изменяем строку в /etc/default/grub
sudo nano /etc/default/grub
GRUB_CMDLINE_LINUX=""
на
GRUB_CMDLINE_LINUX="zswap.enabled=0"
Устанавливаем zram
sudo apt install zram-tools
zram уже работает, но там всего ~200мб, и нам нужно его настроить:
sudo nano /etc/default/zramswap
В своей версии конфига я установил иной алгоритм сжатия (zstd), если процессор будет плохо справляться - можно попробовать менее требовательный lz4.
Объем для zram можно указать относительно физического объема памяти PERCENT, либо абсолютный SIZE. В моем случае это 99% от физического объма.
После изменения конфигурации просто перезапускаем zram
sudo systemctl restart zramswap.service
Удостовериться в том, что всё работает как мы хотели, поможет комманда
zramctl
Подозреваю, что полезность этого решения будет зависить от того с чем вы работаете. В моем случае это написание кода, и тут всё хорошо сжимается, однако если вы работаете с графикой - скорее всего zram окажется не так эффективен.