[Решено] Можно ли заменить tmpfs на zram?

Приветствую Всех!

Имеется старенький комп i586 с целероном 2.8 и 1.5Г памяти, которой как обычно, всегда мало, даже для ковыряния в интернете, а недавно узнал, что есть такая штука, как zram, что помогает использовать память эффективнее чуть ли не вдвое, включил её модуль у себя на компе, а что дальше делать не знаю. В вики есть статья, как можно подключить zswap, но при моём объёме памяти держать своп в оперативе думаю смысла нет, а вот можно ли переключить на zram все смонтированные tmpfs точки?

$ mount|grep tmpfs
dev on /dev type devtmpfs (rw,nosuid,relatime,size=771116k,nr_inodes=192779,mode=755)
run on /run type tmpfs (rw,nosuid,nodev,relatime,mode=755)
tmpfs on /dev/shm type tmpfs (rw,nosuid,nodev)
tmpfs on /sys/fs/cgroup type tmpfs (ro,nosuid,nodev,noexec,mode=755)
tmpfs on /tmp type tmpfs (rw,nosuid,nodev)
tmpfs on /run/user/1000 type tmpfs (rw,nosuid,nodev,relatime,size=154808k,mode=700,uid=1000,gid=1000)

Стоит ли это делать и как это можно осуществить?

Пока сделал zran небольшого объёма (256М), ну честно говоря, я не знаю какой нужен, сейчас такой

# zramctl
NAME       ALGORITHM DISKSIZE  DATA COMPR TOTAL STREAMS MOUNTPOINT
/dev/zram0 lzo           256M  184K  2,8K   84K       1 /zram
# mount|grep zram
/dev/zram0 on /zram type ext4 (rw,nosuid,nodev,noexec,noatime,discard,data=ordered,user)
anoobis
zram, что помогает использовать память эффективнее чуть ли не вдвое, включил её модуль у себя на компе
Надеюсь таким способом?
The systemd-swap package provides a systemd-swap.service unit to automatically initialize zram devices. Configuration is possible in /etc/systemd-swap.conf.

anoobis
zswap, но при моём объёме памяти держать своп в оперативе думаю смысла нет
Своп, на то и своп, чтоб лежать на диске и расширять оперативную память при её недостатке.

anoobis
а вот можно ли переключить на zram все смонтированные tmpfs точки
Systemd дефолтом создает эти папки "tmpfs" в оперативной памяти, если они конечно не прописаны явно в файле "/etc/fstab", так же это можно отключить командой "systemctl mask tmp.mount" и всё временное барахло будет лежать на диске в каталоге /tmp.
binaryshadow
Надеюсь таким способом?
The systemd-swap package provides a systemd-swap.service unit to automatically initialize zram devices. Configuration is possible in /etc/systemd-swap.conf.
Не-не, я своп не трогал. Подключил смысле через modprobe zram, т.е. делал по вики, но вместо свопа создал раздел, примерно так:
echo "zram" > /etc/modules-load.d/zram.conf
echo "options zram num_devices=1" > /etc/modprobe.d/zram.conf
echo 'KERNEL=="zram0", ATTR{disksize}="256M" RUN="/usr/bin/mkfs.ext4 /dev/zram0", TAG+="systemd"' > /etc/udev/rules.d/99-zram.rules
echo '/dev/zram0 /zram ext4 rw,discard,user,noatime 0 0' >> /etc/fstab

binaryshadow
Своп, на то и своп, чтоб лежать на диске и расширять оперативную память при её недостатке.
Это так, но ведь zram создаёт диск в оперативке, зачем тратить оперативку, которой и так мало на то, чтобы сохранять оперативку в оперативку)

binaryshadow
Systemd дефолтом создает эти папки "tmpfs" в оперативной памяти, если они конечно не прописаны явно в файле "/etc/fstab", так же это можно отключить командой "systemctl mask tmp.mount" и всё временное барахло будет лежать на диске в каталоге /tmp.
А нельзя её не отключать, а переделать, чтобы эти временные файлы были внутри /zram? Ну т.е. создавались каталоги /zram/tmp, /zram/run, /zram/dev/shm, /zram/sys,/zram/fs/cgroup, /zram/run/user/1000 ?? Или это как-то по-другому делается?

PS Или нужно создавать zram на каждый каталог? Или простые ссылки сделать с каталогов на zram, как правильно это делается?
Я думаю так, что если systemd создает временную папку в оперативке с использованием zram, то делать ничего не нужно.
Собственно и tmpfs размещается в оперативке уже в сжатом виде, что легко проверить созданием файла во временной папке, без сжатия tmpfs и со сжатием.
Извините, непонятно, что Вы хотите сказать. Вот как я понимаю, zram создает свой диск в памяти, данные внутри которого хранятся в сжатом виде... в пределах этого диска, а tmpfs и другая память, используемая под своп или буфферы при этом продолжают работать в своём обычном режиме, т.е. от присутствия zram в системе они не начинают работать со сжатием.
anoobis
Не-не, я своп не трогал. Подключил смысле через modprobe zram, т.е. делал по вики, но вместо свопа создал раздел, примерно так:

echo "zram" > /etc/modules-load.d/zram.conf
echo "options zram num_devices=1" > /etc/modprobe.d/zram.conf
echo 'KERNEL=="zram0", ATTR{disksize}="256M" RUN="/usr/bin/mkfs.ext4 /dev/zram0", TAG+="systemd"' > /etc/udev/rules.d/99-zram.rules
echo '/dev/zram0 /zram ext4 rw,discard,user,noatime 0 0' >> /etc/fstab
Все тоже самое. Только
num_devices - кол-во zram разделов. +1
Создаются разделы /dev/zram0 , /dev/zram1 , /dev/zram2 и т.д.
/dev/zram0 /tmp ext4 rw,nosuid,nodev

И в этом примере ты не свап создаешь, а бесполезный раздел в корне.
Нужно mkswap /dev/zramX и в fstab соответствующую строку.
Lupus pilum mutat, non mentem.
binaryshadow
Собственно и tmpfs размещается в оперативке уже в сжатом виде,
Да ладно?
binaryshadow
Собственно и tmpfs размещается в оперативке уже в сжатом виде, что легко проверить созданием файла во временной папке, без сжатия tmpfs и со сжатием.
Сам то пробовал?
Lupus pilum mutat, non mentem.
Только какой в этом смысл?
tmpfs                   997M          32K  997M            1% /tmp
tmpfs                   997M          16K  997M            1% /var/log
tmpfs                   997M            0  997M            0% /var/tmp
Пакеты ёгуртом собирать только)))
anoobis
1.5Г памяти, которой как обычно, всегда мало,
Сейчас с двум гигами сижу))) Фокс с 20 прогруженными вкладками открыт. + еще куча.
free -m
              total        used        free      shared  buff/cache   available
Mem:           1993         763         636          41         593        1029
Swap:             0           0           0

Lupus pilum mutat, non mentem.
jim945
Все тоже самое. Только
num_devices - кол-во zram разделов. +1
Создаются разделы /dev/zram0 , /dev/zram1 , /dev/zram2 и т.д.
/dev/zram0 /tmp ext4 rw,nosuid,nodev
А зачем их много?
Я прикинул, проц одноядерный, всё равно в один поток будет жать, один будет диск или сотня - никакой разницы.

jim945
И в этом примере ты не свап создаешь, а бесполезный раздел в корне.
Нужно mkswap /dev/zramX и в fstab соответствующую строку.
Ну так.. бесполезный, хотел с него сделать полезный :) закинуть tmpfs-каталоги, что могут отнимать память. (/tmp к примеру растёт при открытии больших архивов)
И своп кстати можно на этом же разделе сделать файлом.
anoobis
закинуть tmpfs-каталоги, что могут отнимать память.
Тогда mkdir и mont --bind. И думать как это в автозапуск поставить)))
anoobis
(/tmp к примеру растёт при открытии больших архивов)
У zram есть одна особенность. При удалеении файла место автоматически не освобождается. Нужен trim)))
Придется периодически забивать освободившееся место нолями.
Lupus pilum mutat, non mentem.
 
Зарегистрироваться или войдите чтобы оставить сообщение.