Zram / Zswap

Olej

New member
Сообщения
1 307
#1
Инструменты свопирования страниц RAM туда же в RAM в сжатом виде. Включённые в официальный состав ядра начиная с версии 2.6.37. Позволяет увеличить скорость свопирования виртуальных страниц RAM до 10-15 раз! Что проявляется субъективно, "на глаз" увеличением отзывчивости приложений на действия пользователя, особенно для крупных GUI приложений на Qt.
Особенно может оказаться полезным для малых (память 1-4Gb) и встраиваемых (tmbedded) конфигураций.
Популярно, "на пальцах" можно почитать здесь: Zram и Zswap или как увеличить эффективность оперативной памяти
Здесь есть и пожелание (включить в состав репозитория), и вопрос.

Пожелание, естественно, в том, чтобы включить весь этот инструментарий в полном объёме. Многие пользователи за это скажут вам: спасибо.

P.S. Есть, как кажется, ещё одно достоинство использования именно Zram / Zswap, не очень замеченная в публикациях: повышенная защищённость системы за счёт того, что а). выгруженные в swap страницы RAM сжаты, т.е. искажены + б). алгоритм этого сжатия можно менять, т.е. он неизвестен априори + в). после завершения работы системы swap пространство, как след работы приложений, не существует.
 
Последнее редактирование:

Olej

New member
Сообщения
1 307
#2
А вопрос вот в чём ... то что мне непонятно.
В Debian 8 для использования Zram (как более простой и гибкий способ) нужно было:
Код:
# apt install zram-config
В Debian 10 такого пакета zram-config, но вместо:
Код:
# apt install zram-tools
Всё это только из стандартных репозиториев Debian.
Но в Astra Linux CE, даже при подключении репозитория Debian (9):
Код:
olej@astra:~$ aptitude search zram
olej@astra:~$
Нет таких пакетов!
Но, с другой стороны:
Код:
olej@astra:~$ cat /boot/config-4.15.3-1-generic | grep ZRAM
CONFIG_ZRAM=m
CONFIG_ZRAM_WRITEBACK=y

olej@astra:~$ cat /boot/config-4.15.3-1-generic | grep ZSWAP
CONFIG_ZSWAP=y
Ядро собрано (сознательно конфигурировано!) с поддержкой этих инструментов!
Код:
root@astra:/lib/modules/4.19.0-1-generic/kernel/drivers/block/zram# pwd
/lib/modules/4.19.0-1-generic/kernel/drivers/block/zram
root@astra:/lib/modules/4.19.0-1-generic/kernel/drivers/block/zram# ls -l
итого 44
-rw-r--r-- 1 root root 44142 Фев 20 19:12 zram.ko
Вот этот модуль. Но нет пакета его поддержки из юзерспейс.

Получается нонсенс: либо из ядра убрать, либо пакет добавить. ;)
 
Последнее редактирование:

Olej

New member
Сообщения
1 307
#3
Вот этот модуль. Но нет пакета его поддержки из юзерспейс.
Можно (в Astra Linux CE) установить и раскрутить Zram вручную:
Код:
root@astra:/etc/apt/sources.list.d# modprobe --all lz4 lzo deflate zram

root@astra:/etc/apt/sources.list.d# lsmod | grep zram
zram                   24576  0

root@astra:/etc/apt/sources.list.d# cat /sys/block/zram0/comp_algorithm
[lzo] lz4 lz4hc 842 zstd

root@astra:/etc/apt/sources.list.d# echo 500m >/sys/block/zram0/disksize

root@astra:/etc/apt/sources.list.d# echo 300m >/sys/block/zram0/mem_limit

root@astra:/etc/apt/sources.list.d# mkswap /dev/zram0
Setting up swapspace version 1, size = 500 MiB (524283904 bytes)
без метки, UUID=c8071abb-8df6-4cd7-ba83-c0c985e1793c

root@astra:/etc/apt/sources.list.d# swapon -p10 /dev/zram0

root@astra:/etc/apt/sources.list.d# swapon -s
Имя файла                               Тип             Размер  Исп-но  Приоритет
/dev/sda5                               partition       4191228 0       -2
/dev/zram0                              partition       511996  0       10
Вот теперь свопирование приоритетно отправляется в Zram.
Это проверка работоспособности и полноты того что нужно в Astra Linux CE, но ... это далеко не оптимальное использование, в отличие от пакета.
(где-то в ранних вариантах документации по Zram рекомендовалось создавать несколько меньших /dev/zram0, /dev/zram1, /dev/zram2, ... - по числу процессоров/ядер, и именно так их создаёт пакет)
 
Последнее редактирование: