Pull to refresh

Linux: «Бесплатная» RAM за счет процессора

Reading time2 min
Views46K

Зачем?

Если вы вдруг оказались с компьютером, в котором RAM распаяна, или все слоты уже использованы, или просто нет возможности добавить еще одну планку памяти, то существует простое решение, имя ему zram.

Я не буду подробно описывать все прелести zram, в интернете достаточно много информации о том, что это такое и как можно использовать. Здесь же я хочу предоставить короткую инструкцию, как быстро и просто "добавить" себе оперативной памяти в популярной ОС.

Что это?

Многие знают о существовании swap (файл подкачки), который начинает использоваться, когда оперативной памяти начинает не хватать. Я, как и многие, стараюсь избавляться от такой штуки, потому как swap использует для хранения данных наши ssd/hdd, что в свою очередь имеет минусы:

  • медленная скорость записи/чтения

  • убивает ресурс диска

Но если выключить swap, то мы рискуем повиснуть в тот момент, когда физическая память закончится, ведь магическим образом она ниоткуда не появится... Или появится?!

zram - технология сжатия оперативной памяти. По сути это тот же swap, только размещен он в оперативной памяти и к нему применяются алгоритмы сжатия. Разумеется магия здесь происходит за счёт процессорного времени, потому, хорошо бы иметь процессор вместо пакетика сока.

Делаем

Вся процедура заключается в том, что мы отключим swap и zswap, а затем установим и настроим zram. В моем случае системой является Ubuntu 22.04.

  1. Отключаем swap

sudo swapoff /swapfile
  1. Отключаем создание swap. Для этого закомментируем строку в /etc/fstab

sudo nano /etc/fstab

#/swapfile    none    swap    sw    0    0
Отлючаем swapfile
Отлючаем swapfile
  1. Удаляем более не нужный файл где у нас хранился swap

sudo rm -f /swapfile
  1. Нужно отключить zswap если он у нас включен. Для этого изменяем строку в /etc/default/grub

sudo nano /etc/default/grub

GRUB_CMDLINE_LINUX=""

на

GRUB_CMDLINE_LINUX="zswap.enabled=0"
  1. Устанавливаем zram

sudo apt install zram-tools
  1. zram уже работает, но там всего ~200мб, и нам нужно его настроить:

sudo nano /etc/default/zramswap
Конфигурация zram
Конфигурация zram

В своей версии конфига я установил иной алгоритм сжатия (zstd), если процессор будет плохо справляться - можно попробовать менее требовательный lz4.

Объем для zram можно указать относительно физического объема памяти PERCENT, либо абсолютный SIZE. В моем случае это 99% от физического объма.

  1. После изменения конфигурации просто перезапускаем zram

sudo systemctl restart zramswap.service

Удостовериться в том, что всё работает как мы хотели, поможет комманда

zramctl
Как видно компрессия очень неплохая ~ x4
Как видно компрессия очень неплохая ~ x4

Подозреваю, что полезность этого решения будет зависить от того с чем вы работаете. В моем случае это написание кода, и тут всё хорошо сжимается, однако если вы работаете с графикой - скорее всего zram окажется не так эффективен.

Tags:
Hubs:
Total votes 36: ↑32 and ↓4+34
Comments70

Articles