Увеличиваем ОЗУ без установки доп. оборудования

Все мы хотим увеличить оперативную память, да вот денег на нее нет. И что делать? А есть выход – конечно это не доконца снимет вопрос о нехватки ОЗУ, но даст возможнось перебится до покупки.

Технология zRam ранее известная как compcache – реализована в виде модуля ядра Linux и позволяет сжимать содержимое оперативной памяти, и таким образом увеличивать ее объем в несколько раз. Работает это так: модуль zRam создает сжатое блочное устройство в оперативной памяти и используется как swap. Своп (swap) — это файл, либо раздел, т.е. определенное место на жестком диске (HDD), которое используется для «выгрузки» в него неиспользуемых страниц из оперативной памяти. В нашем же случае мы не отключаем своп с диска, а создаем еще один в ОЗУ. И устанавливаем приоритет.

ZRam хорошо поможет тем, у кого на компьютерах установлен небольшой объем оперативной памяти и возникают проблемы с производительностью и «отзывчивостью» операционной системы.

Debian/Ubuntu/Linux Mint/MX linux:

Установка zRam для Debian
Проверяем свап раздел перед установкой.

swapon -s
sudo apt install zram-tools
sudo nano /etc/default/zramswap

Редактируем, снимаем комментарии. Должно получится что-то вроде этого:

# Specifies amount of zram devices to create.
# By default, zramswap-start will use all available cores.
CORES=1
# Specifies the amount of RAM that should be used for zram
# based on a percentage the total amount of available memory
PERCENTAGE=10
# Specifies a static amount of RAM that should be used for
# the ZRAM devices, this is in MiB
ALLOCATION=256
# Specifies the priority for the swap devices, see swapon(2)
# for more details.
PRIORITY=100

Параметр CORES для каждого свой. У меня одно ядро поэтому значение равно единице.

Создаем скрипт запуска zram

sudo nano /etc/init.d/zram

Вставляем сам скрипт:

# Author: Antonio Galea <antonio.galea@gmail.com>
#
# Thanks to Przemysław Tomczyk for suggesting swapoff parallelization
# Distributed under the GPL version 3 or later, see terms at
# https://gnu.org/licenses/gpl-3.0.txt

### BEGIN INIT INFO
# Provides: zram
# Required-Start: $local_fs
# Required-Stop: $local_fs
# Default-Start: S
# Default-Stop: 0 1 6
# Short-Description: Use compressed RAM as in-memory swap
# Description: Use compressed RAM as in-memory swap
### END INIT INFO

FRACTION=75
MEMORY=$(perl -ne '/^MemTotal:\s+(\d+)/ && print $1*1024' < /proc/meminfo)
CPUS=$(nproc)
SIZE=$((MEMORY * FRACTION / 100 / CPUS))

case "$1" in
start)
param=$(modinfo zram | grep num_devices | cut -f2 -d: | tr -d ' ')
modprobe zram $param=$CPUS

for n in $(seq $CPUS)
do
i=$((n - 1))
echo $SIZE > /sys/block/zram$i/disksize
mkswap /dev/zram$i
swapon /dev/zram$i --priority 10
done
;;
stop)
for n in $(seq $CPUS)
do
i=$((n - 1))
swapoff /dev/zram$i && echo "zram: disabled disk $n of $CPUS" &
done

wait
sleep .5
modprobe --remove zram
;;
*)
echo "Usage: $(basename $0) (start | stop)"
exit 1
;;
esac
# End of file

Делаем файл исполняемым:

sudo chmod +x /etc/init.d/zram

Запускаем скрипт:

sudo /etc/init.d/zram start

Проверяем swap разделы

swapon -s
Filename Type Size Used Priority
/dev/sda2 partition 2097148 494848 -2
/dev/zram0 partition 1505464 0 10

Установка zRam на Ubuntu:

Для активизации zRam достаточно установить пакет zram-config:

sudo apt install zram-config

После установки можно проверить работоспособность:

swapon -s

Если вы видите что-то похожее, то все нормально:

Filename Type Size Used Priority
/dev/sda2 partition 2097148 494848 -2
/dev/zram0 partition 1505464 0 10

Если же zRAM автоматически не запустился, то необходимо сделать следующее:

sudo apt install linux-image-generic -y sudo reboot sudo systemctl start zram-config
sudo systemctl enable zram-config

OpenSuse/Fedora/ROSA/ARCH/manjaro:

На этих дистрибутивах все давольно просто. OpenSuse:

sudo zypper in systemd-zram-service && sudo zramswapon

fedora:
dnf install zram
systemctl enable zram-swap.service
reboot

ROSA:

sudo urpmi zramstart
sudo systemctl start zram.service

ARCH

Простая установка и настройка с помощью ezzram из AUR

В AUR есть сценарий установки пакета ezzram, который представляет из себя python-скрипт с простым конфигурационным файлом и файлом сервиса для systemd. Устанавливается как обычно любым AUR-хелпером, например yay:

yay -Sa ezzram

После установки нужно добавить а втозапуск и запустить сервис ezzram:

sudo systemctl enable ezzram.service 
sudo systemctl start ezzram.service

Конфигурационный файл лежит по пути /etc/ezzram.conf. В нём всего три пораметра:

  • size — размер раздела zram в мегабайтах
  • algorithm — алгоритм сжатия данных в zram разделе
  • cores — количество используемых ядер ЦП

Алгоритм сжатия по-умолчанию является оптимальным для абсолютного большинства пользователей, размер zram разумно установить в пределах 30-50% от полного объёма ОЗУ, ну а в «cores» указываем количество физических ядер своего центрального процессора. После внесения изменений сохраняем файл и активируем новую конфигурацию перезапуском сервиса:

sudo systemctl restart ezzram.service

И на этом все!

Совет: так как разделы создаются в оперативной памяти, то я не советую вам изменять параметр vm.swappines (изменяется в файле /etc/sysctl.conf ), который часто рекомендуют выставить в значение 10 или вообще 0.

Оставить ответ

Ваш адрес email не будет опубликован. Обязательные поля помечены *


Срок проверки reCAPTCHA истек. Перезагрузите страницу.