LINUX.ORG.RU

Zram и сборка в памяти.

 , , ,


0

0

С использованием zram в качестве свопа и темой zram vs. zswap уже более-менее все разобрались и обсудили. А вот возникает тогда другой вопрос: в source-based дистрибутивах, например в Gentoo, давно уже рекомендуют сборку в tmpfs для усокрения процесса, снижения нагрузки на hdd, снижения износа ssd и т.п.

Однако, все это можно запихнуть и в zram, несмотря на некоторый оверхед все еще будет жаться и требовать меньше памяти (исходники неплохо так жмутся). Возникает вопрос, какую ФС лучше всего использовать? Чтоб меньше оверхеда было, например. Сам пользуюсь ext2+zstd сжатием. Вдруг кто еще пользуется таким подходом?

★★

А зачем? В основном /var/tmp/portage не забивается более чем на 300мб, если не считать браузеры где необходимо от 6гб. В остальных случаях хватит простого tmpfs.

zram-init уже имеет в конфиге монтирование в /var/tmp. У меня он так работает, но разницы особой не заметил.

Artamudo ★★★★
()
Последнее исправление: Artamudo (всего исправлений: 1)

Когда-то давно (и неправда) баловался, zstd в ядре не было. Очень хорош был f2fs+lz4, так как у lz4 почти одинаково быстрое сжатие и распаковка. ext4 с журналом(!) был быстрее ext2 (ext4 без журнала), jfs и прочих reiserfs.

В общем, сделал вывод, что ssd и файловый кеш линукса не сильно медленнее (разница во времени компиляции где-то 2-3%). И работает.

anonymous
()

Хватит быть нищебродом! Иди в магазин и купи 128Гб ОЗУ, не позорься.

anonymous
()

Фигня всё это. Жирнопроги смотрят доступную озу. Обмануть зрамой не получится.

Собирать в озу нынче можно только легкие пакеты.

Для панды, офиса и спидерманки надо 16гб.

utanho ★★★★★
()
Ответ на: комментарий от Artamudo

А зачем?

Браузеры, либреофис, хаскель (ghc), параллельная сборка (-j 2).

zram-init уже имеет в конфиге монтирование в /var/tmp.

Да, там предложен ext2, а несколькими дисками ниже... btrfs, что вообще странно.

У меня он так работает, но разницы особой не заметил.

Так и у меня работает, вопрос, а нет ли простора для улучшайзинга.

tis ★★
() автор топика
Ответ на: комментарий от anonymous

Да, интересная мысля f2fs попробовать. Ну и ext4

tis ★★
() автор топика
Ответ на: комментарий от tis

Не. Там дело в другом.

Я как-то собирал пакеты в озу, а потом забыл отмонтировать. И тут спидерманки обновилась. Точнее попыталась. Выжрала всю озу и система колом встала.

Наличие/отсутствие свопа роли не играет.

utanho ★★★★★
()
Ответ на: комментарий от utanho

Звучит как что-то что в соседних тредах le9 патчем лечат... Я не сталкивался, но я для жиронты отмонтирую /tmp/.

tis ★★
() автор топика
Ответ на: комментарий от tis

Звучит как что-то что в соседних тредах le9 патчем лечат...

Тут другое. Просто 8гб - мало. Надо это принять.

utanho ★★★★★
()
Ответ на: комментарий от bhfq

Гермиона сильно изменилась за лето Исходники хромого за пять лет… нутыпонел.

tis ★★
() автор топика
mount |grep portage
tmpfs on /var/tmp/portage type tmpfs (rw,noatime,size=18874368k,mode=775,uid=250,gid=250)
grep fail-clean /etc/portage/make.conf
FEATURES="${FEATURES} fail-clean"
mkdir /sys/fs/cgroup/emerge
echo 14G > /sys/fs/cgroup/emerge/memory.high
echo $$ > /sys/fs/cgroup/emerge/cgroup.procs
emerge 
zram swap

c 8GB рам тоже можно комфортно собрать тяжелые пакеты в tmpfs, только компилировать придется без lto скорее всего

nanosecond
()
Последнее исправление: nanosecond (всего исправлений: 2)
Ответ на: комментарий от Artamudo

spidermonkey, gcc, llvm, clang хотят явно больше 300 мб для сборки.

grem ★★★★★
()

ext2

ext2 учитывает каждый блок отдельно. Лучше взять ext4, там учёт идёт экстентами. Журнал у ext4 отключается.

i-rinat ★★★★★
()
Ответ на: комментарий от tis

Кому что передать? Как ext4 создать без журнала? /sbin/mkfs.ext4 -O ^has_journal device-file

Можно ещё с помощью tune2fs выключить журнал на уже созданной ФС.

i-rinat ★★★★★
()
Последнее исправление: i-rinat (всего исправлений: 1)
Ответ на: комментарий от i-rinat

Да эт понятно. Я про то, как это сделать через конфиг zram’a. Но вроде разобрался – noload передать при монтировании.

tis ★★
() автор топика
Ответ на: комментарий от utanho

Для панды, офиса и спидерманки надо 16гб

Зависит от количества потоков. У меня 6Гб tmpfs и в 3 потока спидерманка спокойно собиралась.

Chord ★★★
()
Ответ на: комментарий от tis

Можно настроить для отдельных пакетов сборку в файловой системе харда.

grem ★★★★★
()
Ответ на: комментарий от Chord

Спайдерманки.ebuild проверяет наличие места на 6.4 гб в каталоге для сборки и даже не будет начинаться собираться, если его меньше. RAM в 6 Гб для сборки в 3 потока да, хватит, но это для текущих модулей,а не всего каталога.

grem ★★★★★
()
Ответ на: комментарий от tis

именно. страницы из tmpfs при необходимости будут сжиматься в zram swap

mittorn ★★★★★
()
Ответ на: комментарий от anonymous

«Быть бедным не стыдно.» (с) бедняк.

anonymous
()
Ответ на: комментарий от utanho

Не знаю... У меня 4 гб ram и я еше сделал swap на 16гб и вообще офигенно...

Dumppper001
()
Ответ на: комментарий от bhfq

Я собираю на 4гб озу + огроменный файл подкачки + zram и все на старом ноуте, и иногда засовываю tmpfs в zram

Dumppper001
()
Ответ на: комментарий от utanho

Для панды, офиса и спидерманки надо 16гб.

8 должно хватить, если если своп на zram и zram disksize в три раза больше MemTotal и alg=zstd.

Вот пример: 2 гига памяти, и 6 улетело в своп. То есть zstd позволяет сжатие в несколько раз при сборке. Так что можно делать своп даже в три раза больше оперативы.

Скриншот: https://imgur.com/a/vY9qrWz

Это сборка ядра 514 в 128 потоков, емнип, на двух гигах оперативы.

При этом: сохранялась отзвычивость, спокойно сделал скриншот на пике нагрузки, система ни разу не зависала. Вот что можно делать при следовании лучшим практикам - экономить на железе и иметь всегда отзывчивый гуй.

hakavlad ★★★
()
Ответ на: комментарий от hakavlad

4 гига озу + 32 гига свопа + tmpfs в zram вот этт чудеса оптимизации

Dumppper001
()
Ответ на: комментарий от Dumppper001

Я не про оперативку для сборки, а про место для хранения проекта во время сборки - перед сборкой он проверит наличие свободных 6.4 Гб. Естественно, что если проект собирается в tmpsfs, то в tmpfs должно быть больше эти 6.4 Гб помимо оперативки под текущие операции компилятора.

grem ★★★★★
()
Ответ на: комментарий от grem

в tmpfs должно быть больше эти 6.4 Гб

Можно размер какой угодно указать при монтировании.

$ df -h
Файловая система       Размер Использовано  Дост Использовано% Cмонтировано в
udev                     4,8G            0  4,8G            0% /dev
tmpfs                    983M         1,5M  981M            1% /run
/dev/mapper/sda4_crypt   217G         187G   20G           91% /
tmpfs                    4,8G         261M  4,6G            6% /dev/shm
tmpfs                    5,0M         4,0K  5,0M            1% /run/lock
tmpfs                    4,8G         2,7M  4,8G            1% /tmp
tmpfs                    100G          13M  100G            1% /tmpfs
hakavlad ★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.