LINUX.ORG.RU
ФорумTalks

Сборка пакетов в памяти с использованием swap и zram

 , , ,


1

1

Трёхгодовалый компьютер с четырёхядерником Intel Core2 Quad CPU Q9400 @ 2.66GHz, 4 Гб памяти и довольно старым SATA HDD.

Обычно, сборка app-office/libreoffice занимает у меня столько времени:

real    112m25.300s
user    294m27.897s
sys     29m2.738s

неприятно треща при этом жестким диском и требуя для сборки более 5 Гб свободного места.

Решил пощупать zram. Создал 4 устройства по гигабайту, подключил каждый как своп, и смонтировал tmpfs размером в 6 Гб в /var/tmp/portage

Время сборки libreoffice практически не изменилась:

real    112m33.270s
user    296m37.652s
sys     29m25.056s

При этом сборка проходила в полнейшей тишине, без всяких 12309 и полностью в оперативной памяти :)

Скриншот системного монитора

Ну, собрав самый требовательный к простраству пакет, засунув сборку в ОЗУ (в качестве DE, кстати, KDE), полностью перешел на использование zram.

Ага, спасибо, что напомнил, давно хотел попробовать :)

Deleted
()

Интересно, у меня при попытке сделать mkswap на устройство на 4 гига при 4 гигах памяти kernel panic ;)

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

Да, зависимости собрал заранее.

[ebuild   N   ~] app-office/libreoffice-3.6.2.2 USE="branding dbus gtk kde opengl svg vba webdav (-aqua) -binfilter -binfilterdebug -cups -eds -gnome -gstreamer -java -jemalloc -mysql -odk -postgres -test" LIBREOFFICE_EXTENSIONS="presenter-console presenter-minimizer -nlpsolver -pdfimport -scripting-beanshell -scripting-javascript -wiki-publisher" 0 kB
muzenbaher
() автор топика
Ответ на: комментарий от Pinkbyte

In this case, a Core i5 machine with 8gb of ram gets 4 zram devices with 256mb each. Totalling 1gb, the zram with a theoretical compression rate of 1:8 should equal an 8gb swap partition.

Гм. Забавно.

Но я так понимаю, что проседает при єтом проц? Интересно узнать насколько :)

У меня на гентушечках 8гб озу:

none on /var/tmp/portage type tmpfs (rw,size=80%)
В принципе этого всегда хватало для сборки системы и всяких там тандербердов с фелофокстами. :)

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

LO собирать как-то не хочется, протестировал на gcc.

С tmpfs:

real    9m11.911s
user    42m28.715s
sys     3m45.661s

Без tmpfs:

real    9m32.534s
user    42m35.846s
sys     3m44.955s

Разница есть, но слабо ощутимая.

Kindly_Cat
()

Ах да! У меня еще uksm патч наложен на гентушное ядро. Он же тоже должен добавлять нагрузки на процессор.

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

Дык эта... У меня core2quad, на нём x86_64 особого смысла не имеет, во-первых. А во-вторых, ошибку писать надо, а не ронять всё в panic.

Deleted
()

zram

Как раз думал, как бы так продолжить tmpfs использовать при 6 ГБ оперативы (либра проверяет, чтобы раздел 6 ГБ был, вроде бы), чтобы при сборке система в свап не загонялась.

Сжатие в zram стабильно высокое или зависит от того, что в память загружено?

MahMahoritos ★★★
()

the zram with a theoretical compression rate of 1:8 should equal an 8gb swap partition.
Создал 4 устройства по гигабайту

Обязательно было так много? Это ж теоретически 32 GB swap получается.

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

Харду на такой износ всё равно, мне кажется. Вот для SSD разница есть, да.

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

Сжатие в zram стабильно высокое или зависит от того, что в память загружено?

Тоже это интересует. Мне вот непонятно, как это бинарники можно сжать в 8 раз.

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

Пишу с работы, по памяти:

Ознакомиться с размером сжатых и оригинальных данных можно в каких-то файлах в /sys/block/zramN/, там интуитивно понятно. При сборке фурифокса сжатие было приблизительно шестикратным.

Позже выложу тесты где сборка происходит только в zram, а не в свопе, который используется только при нехватке ОЗУ. Ведь имеющихся у меня 4 Гб оперативки не хватало только для сборки либры.

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

Ну, 1:8 это скорее идеальный случай. Лучше рассчитывать на 1:4...1:6. Вообще же у меня портаж собирает одновременно 4 пакета, и я подстраховался на случай одновременной сборки, либры, гцц и фурифокса.

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

У меня core2quad, на нём x86_64 особого смысла не имеет

Имеет имеет :) Ускорение числодробилки все равно должно быть.

А во-вторых, ошибку писать надо, а не ронять всё в panic.

А версия ведра какая? Авось там бага в модуле.

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

Ну вот и получается что в моём случае что замедление от сжатия компенсируется скоростью чтения/записи ОЗУ, а не HDD.

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

сожми еще раз любой архив и сравни объем

Кто тебе сказал, что в оперативке сжатые данные, лол? Ясно, что эффекта не будет, если в каталог tmpfs пытаться вогнать архив размером, как вся оперативка. Я спрашивал про реальное применение, насколько сжимаемы данные рабочих процессов?

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

Зато винт не дергает. Пользователям SSD должно пригодиться

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

Имеет имеет :) Ускорение числодробилки все равно должно быть.

Не имеет. ибо man macrofusion. В лучшем случае выигрыш в пределах погрешности.

А версия ведра какая? Авось там бага в модуле.

3.6.7-pf

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

Ну, отдалённость от идеала можно было ожидать. Даже 1:2 было бы уже неплохо.

Вообще же у меня портаж собирает одновременно 4 пакета

Может «в четыре потока»? Или у тебя четыре емержа запускается?

Deleted
()
Ответ на: комментарий от yu-boot

zram ≠ swap, это скорее ещё один буфер памяти между оперативной и свопом на ПЗУ. Просто если памяти много, они откусывают кусок от ОЗУ, и делают его сжатым буфером, хотя я хз, зачем это нужно, если при восьми-то гигабайтах своп можно спокойно отключить. Разве что на серверах с интенсивным дёрганием кеша БД какой-нибудьбудет ощутимый прирост. А на нетбуках откусывать и без того крохи памяти я считаю кощунством.

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

Одновременно 4 пакета в 5 потоков. Не помню как это называется, я сейчас с телефона, неудобно гуглить)

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

А есть способы ограничить доступную память? Могу выдрать одну планку и проверить, но все равно 2 Гб останется. Еще многу на торрентокачалке с 512 Мб хром запустить или еще что.

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