LINUX.ORG.RU

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

 , , ,


0

0

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

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

★★

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

Что никак не противоречит моей фразе о минимально необходимом дисковом пространстве для сборки spidermonkey.

pkg_pretend() {
	if use test ; then
		CHECKREQS_DISK_BUILD="7600M"
	else
		CHECKREQS_DISK_BUILD="6400M"
	fi

	check-reqs_pkg_pretend
}
grem ★★★★★
()
Ответ на: комментарий от Dumppper001

6 гб не обязательно иметь - у меня на 4 гб в 4 потока за 5-10 минут спидерманка собирается

Сдается мне, вы слегка лукавите.

utanho ★★★★★
()

Ну вот дискуссия ушла в направлении оправданности применения связки /tmp/portage on tmpfs + swap on zram.

А я спрашиваю про выбор фс для /tmp/portage on zram. Zswap, swap+zram безусловно нужен, хорош, супер, но немного побоку.

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

/tmp/portage on zram

Не имеет особого смысла, так как файловая система кешируется, и в памяти твои файлы будут валяться в двух экземплярах: в кеше и в файловой системе (на zram). Поэтому надо либо избавиться от кеша, либо от файловой системы. В итоге логичный вывод - tmpfs.

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

Я пробовал зрам, но как-то не взлетело. Наверное, стоит сделать еще подход.

Ну или взять кредит и докупить озу.

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

НетЪ.

Задача четкая и ясная: избежать disk I/O при компиляции кроме на этапе установки опакечивания. Необходимость её решения дело вкуса.

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

не забудьте выставить swappiness >= 150 и включить nohang с опцией конфига zram_checking_enabled=True.

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

Если сборка происходит в озу, то спидерманка вам помашет ручкой, потому что из школьного курса математики нам известно, что 4<6. И своп тут нипричем и его размер и наличие не имеет значения.

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

Если сборка происходит в озу, то спидерманка вам помашет ручкой, потому что из школьного курса математики нам известно, что 4<6

Сборка идет не в сыром ОЗУ, а в tmpfs, у которого 2 свойства:

  • уму можно задать любой размер - хоть терабайт
  • данные из tmpfs могут улетать в своп
hakavlad ★★★
()
Ответ на: комментарий от utanho

Как разместить тмпфс размером 6.5гб в озу 4гб?

tmpfs /tmpfs tmpfs nodev,nosuid,noexec,noatime,size=7G 0 0

Далее в дело вступает swap on zram.

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

У вас шла речь о 7 гигах дискового пространства? Так это оно и есть - фс в tmpfs.

Выше я привет пруф со скриншотом и объяснил как это работает.

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

Стоит уточнить некоторые моменты.

Как мне кажется, сборка в озу!=сборка в тмпфс, если тмпфс лежит на диске.

Я просто монтировал /var/tmp/portage и вся сборка шла в озу.

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

Как разместить тмпфс размером 6.5гб в озу 4гб?

Нормально размещается, свопается «как положено», то есть ставя раком всю систему на random I/O.

anonymous
()

Не понимаю зачем собирать в памяти. Суть в самосборе в возможности вносить свои изменения, для которых удобна инкрементальная компиляция. А инкрементальная компиляция не дружит со сборкой в памяти.

Сборка в памяти имеет смысл разве что для серверов сборки.

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

в свопе - не значит, что на диске.

В случае с 4гб рамы, размещение зрам тоже потребует места. Что уменьшит физическую озу. Как сделать так, чтобы своп файл размером 7гб поместился полностью в озу размером 4гб. И спидерманка повелась бы на это и начала собираться.

У меня ноут с 8 гб озу под рукой, могу убрать одну планку.

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

Как сделать так, чтобы своп файл размером 7гб поместился полностью в озу размером 4гб

Сжимаем 7гб в 3 раза. Получаем 2.3 гб. 2.3 гб спокойно влезет в 4 гб памяти.

Ах, своп файл! Своп-файл - не знаю, а вот своп раздел на зрам - легко.

Выше был пример размещения файла 780 гб в озу 6 гб https://imgur.com/a/aM27KQd

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

«Нормально» компилируется chromium в tmpfs в 4 потока на 4гигах памяти c zswap.

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.