Alterator-zram-swap: различия между версиями

Материал из ALT Linux Wiki
(Новая страница: «{{Stub}} == Название пакета == {{pkg|alterator-zram-swap}} == Назначение == Модуль '''Настройка zram-swap''' позво…»)
 
Нет описания правки
 
(не показано 6 промежуточных версий 4 участников)
Строка 1: Строка 1:
{{Stub}}
 
== Название пакета ==
== Название пакета ==


Строка 12: Строка 12:
Модуль '''Настройка zram-swap''' доступен в GUI: раздел {{nav|Система|Настройка zram-swap}}
Модуль '''Настройка zram-swap''' доступен в GUI: раздел {{nav|Система|Настройка zram-swap}}


[[Файл:Alterator-zram-swap.png|Интерфейс модуля Настройка zram-swap]]
[[Файл:Alterator-zram-swap.png|Интерфейс модуля Настройка zram-swap|center]]


== Использование модуля ==
== Использование модуля ==


Для того чтобы активировать диски zswap следует отметить пункт «Включить модуль zram-swap» и нажать кнопку «Применить».
Для того чтобы активировать диски zram следует отметить пункт «Включить модуль zram-swap» и нажать кнопку «Применить».


{{Note|Количество разделов zram будет равно количеству ядер процессора:
{{Note|Количество разделов zram будет равно количеству ядер процессора:
 
<pre>
<source lang="text" highlight="1"># swapon -s
# swapon -s
Имя файла Тип Размер Исп-но Приоритет
Имя файла Тип Размер Исп-но Приоритет
/dev/sda1      partition 130044 0 -2
/dev/sda1      partition 130044 0 -2
/dev/zram0      partition 249820 10748 100
/dev/zram0      partition 249820 10748 100
/dev/zram1      partition 249820 6916 100</source>
/dev/zram1      partition 249820 6916 100</pre>


Алгоритм сжатия — lz4:
Алгоритм сжатия — lz4:
Строка 30: Строка 30:
lzo lzo-rle [lz4] lz4hc 842 zstd </source>}}
lzo lzo-rle [lz4] lz4hc 842 zstd </source>}}


== Настройка модуля ==
На данный момент модуль Alterator не предоставляет графического инструмента для тонкой настройки модуля zram-swap, поэтому для тонкой настройки потребуется вручную отредактировать скрипты запуска соответствующего юнита systemd: /lib/systemd/system/zram-swap.service
{{Note| Дальнейшие действия не рекомендуется производить неопытным пользователям!
Содержимое юнита по умолчанию:
<pre>[Unit]
Description=Enable and configure zram-swap module
DefaultDependencies=no
After=multi-user.target
[Service]
Type=simple
ExecStart=/usr/bin/zram-swap-start
ExecStop=/usr/bin/zram-swap-stop
RemainAfterExit=yes
[Install]
WantedBy=swap.target</pre>}}
Требуется изменить скрипт запуска (ExecStart) /usr/bin/zram-swap-start <br>
Это обычный bash-скрипт.<br>
Содержимое по умолчанию:
<pre>#!/bin/bash
NPROC=$(grep -c ^processor /proc/cpuinfo)
[ $NPROC != 0 ] || NPROC=1
modprobe -q zram num_devices=$NPROC
MEMTOT=$(grep MemTotal /proc/meminfo | awk ' { print $2 * 1024 } ')
MEMSIZE=$(($MEMTOT / 2 / $NPROC))
for i in $(seq 0 $(($NPROC - 1)))
do
    grep -q lz4 /sys/block/zram$i/comp_algorithm && echo lz4 > /sys/block/zram$i/comp_algorithm
    echo $MEMSIZE > /sys/block/zram$i/disksize
    mkswap /dev/zram$i -L zram$i &>/dev/null
    swapon -p 100 /dev/zram$i
done</pre>
Из этого наиболее важны следующие переменные:<br>
$NPROC — содержит количество ядер процессора.<br>
$MEMTOT — содержит общий объем памяти в байтах.<br>
$MEMSIZE определяется как половина общего объема памяти, разделенная на количество ядер процессора: $(($MEMTOT / 2 / $NPROC)).<br>
Чтобы изменить количество устройств /dev/zramX, достаточно поменять параметры загрузки модуля в скрипте:
<pre>modprobe -q zram num_devices=$NPROC</pre>
Как можно видеть, количество устройств по умолчанию, действительно, равно количеству ядер процессора. Можно уменьшить количество устройств, уменьшив переменную $NPROC в несколько раз, например, в два раза:
<pre>modprobe -q zram num_devices=$(($NPROC/2))</pre>
Общий объем zram-swap определяется как суммарный объем всех устройств /dev/zramX.
Объем одного устройства определяется переменной $MEMSIZE, поэтому, чтобы уменьшить объем одного устройства достаточно изменить формулу расчета, взяв в расчет не половину, а например, четверть от общего объема памяти:
<pre>MEMSIZE=$(($MEMTOT / 4 / $NPROC))</pre>
Таким образом манипулируя вышеуказанными параметрами можно изменять как количество устройств zram-swap, так и общий объем подкачки.
=Ссылки=
[[ZRAM/ZSWAP]]
[[Категория:Модули Alterator]]
[[Категория:Модули Alterator]]
{{Category navigation|title=Модули Alterator|category=Модули Alterator|sortkey={{SUBPAGENAME}}}}
{{Category navigation|title=Модули Alterator|category=Модули Alterator|sortkey={{SUBPAGENAME}}}}

Текущая версия от 05:58, 15 июля 2023

Название пакета

alterator-zram-swap

Назначение

Модуль Настройка zram-swap позволяет инициировать и настроить устройства подкачки в /dev/zramX.

Запуск

Модуль Настройка zram-swap доступен в GUI: раздел Система ▷ Настройка zram-swap

Интерфейс модуля Настройка zram-swap

Использование модуля

Для того чтобы активировать диски zram следует отметить пункт «Включить модуль zram-swap» и нажать кнопку «Применить».

Примечание: Количество разделов zram будет равно количеству ядер процессора:
# swapon -s
Имя файла	Тип		Размер	Исп-но	Приоритет
/dev/sda1       partition	130044	0	-2
/dev/zram0      partition	249820	10748	100
/dev/zram1      partition	249820	6916	100

Алгоритм сжатия — lz4:

$ cat /sys/block/zram0/comp_algorithm
lzo lzo-rle [lz4] lz4hc 842 zstd


Настройка модуля

На данный момент модуль Alterator не предоставляет графического инструмента для тонкой настройки модуля zram-swap, поэтому для тонкой настройки потребуется вручную отредактировать скрипты запуска соответствующего юнита systemd: /lib/systemd/system/zram-swap.service

Примечание: Дальнейшие действия не рекомендуется производить неопытным пользователям!

Содержимое юнита по умолчанию:

[Unit]
Description=Enable and configure zram-swap module
DefaultDependencies=no
After=multi-user.target

[Service]
Type=simple
ExecStart=/usr/bin/zram-swap-start
ExecStop=/usr/bin/zram-swap-stop
RemainAfterExit=yes

[Install]
WantedBy=swap.target

Требуется изменить скрипт запуска (ExecStart) /usr/bin/zram-swap-start
Это обычный bash-скрипт.
Содержимое по умолчанию:

#!/bin/bash

NPROC=$(grep -c ^processor /proc/cpuinfo)
[ $NPROC != 0 ] || NPROC=1

modprobe -q zram num_devices=$NPROC

MEMTOT=$(grep MemTotal /proc/meminfo | awk ' { print $2 * 1024 } ')
MEMSIZE=$(($MEMTOT / 2 / $NPROC))

for i in $(seq 0 $(($NPROC - 1)))
do
    grep -q lz4 /sys/block/zram$i/comp_algorithm && echo lz4 > /sys/block/zram$i/comp_algorithm
    echo $MEMSIZE > /sys/block/zram$i/disksize
    mkswap /dev/zram$i -L zram$i &>/dev/null
    swapon -p 100 /dev/zram$i
done

Из этого наиболее важны следующие переменные:
$NPROC — содержит количество ядер процессора.
$MEMTOT — содержит общий объем памяти в байтах.
$MEMSIZE определяется как половина общего объема памяти, разделенная на количество ядер процессора: $(($MEMTOT / 2 / $NPROC)).
Чтобы изменить количество устройств /dev/zramX, достаточно поменять параметры загрузки модуля в скрипте:

modprobe -q zram num_devices=$NPROC

Как можно видеть, количество устройств по умолчанию, действительно, равно количеству ядер процессора. Можно уменьшить количество устройств, уменьшив переменную $NPROC в несколько раз, например, в два раза:

modprobe -q zram num_devices=$(($NPROC/2))

Общий объем zram-swap определяется как суммарный объем всех устройств /dev/zramX. Объем одного устройства определяется переменной $MEMSIZE, поэтому, чтобы уменьшить объем одного устройства достаточно изменить формулу расчета, взяв в расчет не половину, а например, четверть от общего объема памяти:

MEMSIZE=$(($MEMTOT / 4 / $NPROC))

Таким образом манипулируя вышеуказанными параметрами можно изменять как количество устройств zram-swap, так и общий объем подкачки.

Ссылки

ZRAM/ZSWAP