Гайд для тех у кого мало оперативки, и тех кто хочет просто оптимизировать её потребление
Для чего это?
zRam - экспериментальный модуль ядра Linux позволяющий сжимать содержимое оперативной памяти, и таким образом увеличивать ее объем в несколько раз.
Он увеличивает производительность путем предотвращения подкачки страниц на диск, используя сжатое блочное устройство в оперативной памяти, пока не появится необходимость использовать файл подкачки на жестком диске. Скорость обмена с оперативной памятью быстрее, чем с жестким диском, следовательно zRam позволяет Linux производить большее число операций подкачки, особенно на старых компьютерах с малым объемом оперативной памяти.
На практике он позволил мне, не используя раздел подкачки и не получая видимого замедления работы компьютера, увеличить размер оперативной памяти в 2.5-3 раза
Короткая версия
Переходим в режим суперпользователя:
su
Вписываем "zram" в /etc/modules-load.d/zram.conf:
nano /etc/modules-load.d/zram.conf
zram
Вписываем в файл /etc/modprobe.d/zram.conf следующее, где число 8 заменяем на кол-во всех ядер:
nano /etc/modprobe.d/zram.conf
options zram num_devices=8
По формуле - общее кол-во оперативной памяти делим на 2, а затем делим на кол-во ядер - запоминаем число.
Редактируем и дописываем в файл etc/udev/rules.d/99-zram.rules следующее, меняя 512mb во всех строках на ваше значение, полученное выше:
Данная инструкция подходит к системам с 8 гб RAM и 8 ядрами. Подстраивайте под свои нужды.
Полноценная версия
Все следующие команды требуется выполнять из режима администратора, войти в который можно командой:
su
Создаём конфиг файл под названием zram.confв директории /etc/modules-load.d/ (таким образом путь то файла будет /etc/modules-load.d/zram.conf) и вписываем туда слово zram:
vim /etc/modules-load.d/zram.conf
zram
Дальше создаём конфиг файл под названием zram.conf в директории /etc/modprobe.d/ и вписываем тудаoptions zram num_devices=X
Вместо 'X' вписываем количество ядер которое у нас есть.
К примеру если у вас 4 ядра, вы вписываете:
vim /etc/modprobe.d/zram.conf
options zram num_devices=4
Перед тем, как перейти к редактированию следующего конфига, ниже вы увидите шпаргалку. Сейчас я объясню как ее использовать и менять под свою систему.
И так, у нас есть следующая шпаргалка конфига 99-zram.rules
Стоит упомянуть, что тут нужно вставлять своё количество строк, и то, как вы можете его определить, зависит от количества ваших ядер.
То есть если у вас 2 ядра то вы копируете 2 строки, которые начинаются с KERNEL=="zram0" и KERNEL=="zram1". Если ядер больше, то, соответственно, копируем соответствующее количество количество строк.
Так же очень важная часть - это распределение места диска для каждого виртуального диска. Выделяемое место необходимо вписывать в строку после ATTR{disksize}=, заменив x в "xMb" на число МБ на ядро. Это посчитать довольно легко:
Делим общее количество озу на 2
Получившееся число делим на количество ядер
К примеру у нас есть компьютер с 4 ядрами и 2ГБ RAM (2048 МБ), получится следующее:
2048 / 2 = 1024
1024 / 4 = 256 МБ
Т.е на каждое ядро будет приходится 256мб, что в сумме даёт нам 1Гб места под Swap
После того как мы разобрались зачем стоит менять значения в строках, создаём его в директории /etc/udev/rules.d/ И вписываем нужное количество строк и места на виртуальных дисках по этому же принципу:
Данный конфиг подойдёт для систем с 2 ГБ RAM и 2 ядрами