Alterator-zram-swap: различия между версиями
Нет описания правки |
|||
(не показано 5 промежуточных версий 4 участников) | |||
Строка 1: | Строка 1: | ||
== Название пакета == | == Название пакета == | ||
Строка 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]] | ||
== Использование модуля == | == Использование модуля == | ||
Для того чтобы активировать диски | Для того чтобы активировать диски zram следует отметить пункт «Включить модуль zram-swap» и нажать кнопку «Применить». | ||
{{Note|Количество разделов zram будет равно количеству ядер процессора: | {{Note|Количество разделов zram будет равно количеству ядер процессора: | ||
Строка 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}}}} |
Текущая версия от 08:58, 15 июля 2023
Название пакета
alterator-zram-swap
Назначение
Модуль Настройка zram-swap позволяет инициировать и настроить устройства подкачки в /dev/zramX.
Запуск
Модуль Настройка zram-swap доступен в GUI: раздел Система ▷ Настройка zram-swap
Использование модуля
Для того чтобы активировать диски zram следует отметить пункт «Включить модуль zram-swap» и нажать кнопку «Применить».
# 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, так и общий объем подкачки.