LINUX.ORG.RU

FS в корень для компиялции.


0

0

Имеем:
Gentoo со всеми её заморочками. Ну, вы знаете. Постоянно чё-то компилиться. Правда, я при этом сплю)
Довольно шустрый процессор Celeron 430-1.8@2.7. Возможно, будет апгрейд, но тогда и будем говорить)
1 гиг оперативки.
Винт АТА 160 Гб. Возможно, вскоре поменяю на 60Гб, и так уже и оставлю. Винт только под систему, данные на другом. Этого обьёма вполне хватает.
Сейчас стоит рейзер.
Файловую систему выбираю для того, чтобы быстрее шла компиляция. Скажу откровенно, после перехода с ехт3 разницу почувствовал очень сильно. Несмотря на то, что рейзер напрягает процессор при операциях с файлами, при компиляции он действительно быстрее. Особенно при конфигурировании, когда на него нагрузка больше.
Подумал, что, может, есть ФС, которая будет меньше нагружать проц и при этом достаточно быстро работать?
Среди конкурентов: jfs(она вообще достаточно стабильна?), ext4(нежелателен т.к. в генте его поддержка реализуется ~ к весне этого года, но если оно того стоит, то я могу и подождать) и reiserfs4(сейчас стоит 3, кроме того, та же история, что и с ехт4 - гента ещё не поддерживает).
Темы на ЛОРе посвящённые ФС либо морально устарели либо не несут содержательного характера. Вроде "Эта ФС рулит потому, что я так сказал!".

Если вы тут, то вы уже наверное догадались, что это не троллинг. Я реально прошу подсказки т.к. у самого сейчас времени не очень много, а рыскать многие часы в инете, постоянно меняя своё мнение слишком долго.
На тех, кто считает своим долгом в каждой теме, которую не понимают, написать "толсто" пытаясь таким образом заработать себе уважение и скор, лично мне наплевать, чего и вам желаю)

> Я реально прошу подсказки т.к. у самого сейчас времени не очень много, а рыскать многие часы в инете, постоянно меняя своё мнение слишком долго.

Debian

Igron ★★★★★
()

>> ext4(нежелателен т.к. в генте его поддержка реализуется ~ к весне этого года, но если оно того стоит, то я могу и подождать)

Ээээ... Что мешает поставить свежее ядро?

Deleted
()

> ext4(нежелателен т.к. в генте его поддержка реализуется ~ к весне этого года

странно, а как у меня раздел на нём?

ну и для компиляций какая разница, что у тебя в корне? /var/tmp/portage/ на tmpfs и компиляй сколько влезет( про влезет - буквально и желательно, что бы именно в оперативной памяти, а не в свапе)

mic ★★★★★
()

Уже пару месяцев использую ext4 на генте. Только патчить груб не хотелось, так что завёл отдельный раздел для /boot. Для раздела, в котором идет компиляция, выбрал вообще ext2 - зачем журналирование при компиляции? Время компиляции уменьшилось по сравнению с ext3, но точных цифр привести к сожалению не могу.

eugeneblack
()

ext4 как раз очень шустрая с работой с файлами, время доступа маленькое к файлам, для gcc tmp самое то , если не можете позволить себе tmpfs

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

>> либо действительно ext2

В ext4 тоже можно выключить журналирование (в 2.6.29), при этом останутся все фичи ext4 и немного увеличится производительность. И даже со включенным журналированием, ext4 быстрее ext2: http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=0...

P.S. ext4 - journal != ext2

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

4Ъ:

We did
 iozone -T -t 4 s 2g -r 256k -T -I -i0 -i1 -i2
 
 which creates 4 threads, each of which create and do reads and writes on
 a 2G file, with a buffer size of 256K, using O_DIRECT for all file opens
 to bypass the page cache.  Results:
 
                      ext2        ext4, default   ext4, no journal
   initial writes   13.0 MB/s        15.4 MB/s          15.7 MB/s
   rewrites         13.1 MB/s        15.6 MB/s          15.9 MB/s
   reads            15.2 MB/s        16.9 MB/s          17.2 MB/s
   re-reads         15.3 MB/s        16.9 MB/s          17.2 MB/s
   random readers    5.6 MB/s         5.6 MB/s           5.7 MB/s
   random writers    5.1 MB/s         5.3 MB/s           5.4 MB/s
 

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

Хотя если будет много мелких файлов - то цифры могут измениться...

Deleted
()

Я принял решение.

У кого-нибудь есть удобный мануал, как работать с tmpfs?

Rzhepish
() автор топика

Корень и компиляция - вещи несовместимые в любом случае. Нужно спрашивать по /var/tmp/portage и компиляцию.

Много тестировал, расклад по производительности компиляции таков:

1. tmpfs
2. reiser4
3. xfs
4. ext2
5 поделили ext3, ext4 и reiserfs
6. jfs
7. ntfs-3g :)
8. vfat.

Подробности с цифрами (кроме tmpfs): http://balancer.ru/tech/forum/2008/06/t62153--Proizvoditel~nost~-fajlovykh-si...

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

Походу, именно для /var/tmp/portage я результат не выложил, как Gentoo-специфичный, а то итак форум цифрами завалил. А в рабочих каталогах результатов тестов не нашёл. Походу, надо будет делать вторую серию.

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

Ну, насколько я понимаю, быстрее tmpfs всё ранво ничего не будет?

Если так, то его нужно монтировать на /var/tmp/portage и копировать туда все предыдущие файлы? Или не нужно копировать? Оно само всё создаст?

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

>Ну, насколько я понимаю, быстрее tmpfs всё ранво ничего не будет?

Да. Но есть тонкость - не всё можно скомпилировать в объёмах в сотню-другую мегабайт, если на машине всего 1Гб оперативки :)

Поэтому у меня на машине с 4Гб /var/tmp/portage под tmpfs, а на машине с 1,5Гб - в reiser4.

>Если так, то его нужно монтировать на /var/tmp/portage и копировать туда все предыдущие файлы? Или не нужно копировать? Оно само всё создаст?

Копировать ничего не надо. Просто в /etc/fstab:

tmpfs /var/tmp/portage tmpfs defaults 0 0

(ещё туда же рекомендуется /tmp смонтировать, при чём этот - на любой машине... вот, на этой машине у меня там всего 56к занято :D)

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

А после компиляции чего-либо лишние файлы сами удалаятся? И ещё. Можно ли без лишнего гемороя настроить для отдельных пакетов компиляцию на HDD после чего это всё будет обратно возваращаться? И много ли пакетов, которые не влезут на 1 гиг? Из тяжелых у меня стоят только опенофис + гном + стандартный гуёвый набор (к3б там всякие...).

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

>А после компиляции чего-либо лишние файлы сами удалаятся?

Да, если ошибок не было. emerge в /var/tmp/portage распаковывает сорцы, конфигурит, устанавливает в отдельный подкаталог и, если всё ок, переносит результат в рабочую систему. После чего грохает весь рабочий каталог в /var/tmp/portage. При ошибках - остаётся в том состоянии, в котором возникла ошибка.

>Можно ли без лишнего гемороя настроить для отдельных пакетов компиляцию на HDD после чего это всё будет обратно возваращаться?

Нет. Только перед сборкой большого пакета ручками umount.

>И много ли пакетов, которые не влезут на 1 гиг?

Гиг оперативки всего или гиг рамдиска? Если гиг под tmpfs - влезет почти всё, кроме OpenOffice (ему до 5Гб надо). В 1Гб всего оперативки может не влезть GCC. В 1,5Гб влезает. Всё остальное - влезает и в 1Гб. В Гноме вообще массивных пакетов нет, он сильно декомпозированный. А OpenOffice у меня bin :)

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

Я вот тут подумал. А что если смонтровать /var/tmp/portage на тмпфс, а /var/tmp/portage/app-office/openoffice на винт?

И ещё. Вы говорите, есть некий рамдиск? Правильно ли я понял? Нужно включить его поддержку в ядро и при загрузке его каким-то образом включить? Буду очень благодарен за инструкцию по експлутатации)

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

>А что если смонтровать /var/tmp/portage на тмпфс, а /var/tmp/portage/app-office/openoffice на винт?

Да, прокатит.

>И ещё. Вы говорите, есть некий рамдиск? Правильно ли я понял?

Это условно :) Просто любой раздел под tmpfs можно назвать ramdisk'ом.

>Нужно включить его поддержку в ядро и при загрузке его каким-то образом включить?

tmpfs, по идее, в любом ядре включена.

Хотя бы потому, что почти в любой системе есть:

tmpfs /dev/shm tmpfs defaults 0 0

:)

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

Начал пробовать и столкнулся с енприятными особеностями.

Тут http://www.citforum.ru/operating_systems/linux/robbins/fs03.shtml написано, что tmpfs умеет использовать не только ОЗУ, но и своп. Уже было обрадовался, но нифига оно так не заработало. В директории с tmpfs-ом лежит 500 мб и больше туда ничего не влезает. Своп установлен 4Гб. Своп видиться системой вполне нормально, елси необходимо - спокойно используется. Но не в данном случае. Что делать?

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

теперь я уже не уверен, что своп нормально юзается. Гном систем монитор показывает, что занаято вообще 223 мб памяти. при том, что я забил её под завязку.

tmpfs /tmp tmpfs defaults 0 0

/dev/sda2 /boot ext3 defaults 0 0

/dev/sda3 swap swap sw 0 0

/dev/sda4 / reiserfs noatime 0 0

none /proc proc defaults 0 0

none /dev/shm tmpfs defaults 0 0

Раньше у свопа стояло в точке монтирования none.

тмпфс монтирую так.

mount tmpfs /mnt/tmpfs -t tmpfs

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

Более того. Размер тмпфс-а всегда ровно 496,5 мб. Сколько бы ни было запущено приложений паралельно.

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

Дальше хуже. При монтировании нескольких тмпфс-ов у каждого выделается 496,5 мб, которые действительно можно заполнить. Потом подключается своп. Систем-монитор это показывает. Правда показывает, что занято только 234 мб оперативки(

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

Вроде разгрёб. при монтировании нужно было указать максимальный размер.

# mount tmpfs /mnt/tmpfs -t tmpfs -o size=2048m

Спасибо вам всем!

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