LINUX.ORG.RU

Замена tmpfs на zram. Есть ли профит?

 , ,


3

3

Вопрос чисто из праздного интереса.

Стоит на виртуалке Arch с 4ГБ RAM. От нефиг делать обновлял ядро не готовым бинарным пакетом, а со сборкой из сорсов. Перед этим вместо tmpfs для /tmp сделал zram-диск на 4 гига. Вся сборка влезла в 2,5 гига на диске, а сам диск в сжатом видел занял где-то 900МБ в памяти.

Имеет ли право на жизнь такой способ оптимизации, или нефиг фигней страдать?

★★★★★

/tmp

zram-диск

4 гига

Ты больной? /tmp не жрёг больше полугига, и сжимать там нечего — одни временные базы данных да конфиги, которые сами по себе весят ничего.

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

r3lgar ★★★★★
()

Да, конечно, имеет право. Если много компиляешь, должно получаться быстрее, чем если хранить временные файлы на диске.

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

Я половины сообщения не понял, отписался только к той части, которую понял.

r3lgar ★★★★★
()

во автоматизация дошла - решил попробовать снова zram в своей генте, вспомнил, что когда-то приходилось велосипедить скрипты для openrc, а теперь всё упёрлось в 4 операции: emerge zram-init, поставил в юнитах systemd 8 потоков вместо 2, активировал юниты zram для свопа, /tmp и /var/tmp, перезагрузился

компилится amarok для теста:

# zramctl
NAME       ALGORITHM DISKSIZE   DATA COMPR TOTAL STREAMS MOUNTPOINT
/dev/zram0 lz4             4G     4K   64B    4K       8 [SWAP]
/dev/zram1 lz4             2G   4.5M  2.3M  2.8M       8 /tmp
/dev/zram2 lz4           6.1G 136.5M 66.2M 68.3M       8 /var/tmp

как видно, экономия места почти двухкратная (сравнивать столбцы DATA - это размер данных без сжатия, и TOTAL - это фактический размер данных)

первая строка - сборка в обычной tmpfs, вторая - сборка в zram:

# genlop -t amarok
 * media-sound/amarok

     Sat Sep 12 18:29:56 2015 >>> media-sound/amarok-2.8.0-r3
       merge time: 2 minutes and 38 seconds.

     Tue Oct  6 20:52:52 2015 >>> media-sound/amarok-2.8.0-r3
       merge time: 2 minutes and 34 seconds.

ничего не пойму, как две дополнительные прослойки (ext4 и сжатие) могут не увеличить время компиляции?

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

дефолтным скриптом на zram используется ext4 без журнала и с такими опциями монтирования:

# mount | grep zram
/dev/zram1 on /tmp type ext4 (rw,discard)
/dev/zram2 on /var/tmp type ext4 (rw,relatime,discard)

может, всё-таки попробовать переписать скрипт и запилить вместо ext4 какую-нибудь reiserfs?

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

но при zram на проц ещё дополнительная нагрузка - сжатие, ну и активная работа с кучей файлов на ext4 тоже какую-никакую нагрузку добавляет

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

Меня больше не время сборки, а экономия памяти при сборке волнует. Первый раз сборка до конца не дошла, потому что всё в tmpfs не влезло.

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

Лол, правда не туда посмотрел, отмена.

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

Да года три уже в генте собираю пакеты только в zram.

Оперативы тоже 4Gb, создан один zram размером тоже 4Gb, в него смонтирован каталог на 7Gb и в нем уже и происходит сборка.

Собирается обычно 4 пакета одновременно. При сборке тяжелых пакетов ram и zram заняты где-то на 70-80%

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

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