emerge... Как быстрее...?
Гость 3 апреля, 2006 - 11:07
Хочу установить несколько пакетов.
Например:
opera kdebase kdenetwork mc kdeadmin
1.Команда в одной консоле:
emerge opera kdebase kdenetwork mc kdeadmin
или
2.Команда в первой консоле:
emerge opera
во второй:
emerge kdebase
в следующей:
emerge kdenetwork
в следующей:
emerge mc
в следующей:
emerge kdeadmin
Как быстрее, эффективнее?
Или никакой разницы?
»
- Для комментирования войдите или зарегистрируйтесь
List of things, we shouldn't do in gentoo...
http://forums.gentoo.org/viewtopic-t-443872.html
По английски я
По английски я не понимаю...
Вообще...
Правильнее один со списком программ.
Вопервых несколько емерджей могут ругаться на различные взаимоблокировки.
Во вторых у различных пакетов могут быть схожие зависимости, при этом оба (или больше) емерджа попытаются ставить зависимости индивидуально. То есть может возникнуть ситуация когда один и тот же пакет будет собираться несколько раз.
Не надо гнаться за скоростью... может быть паралельная работа бвух процессов и даст определенную выгоду... (на многопроцессорной машине) но лучше для этого использовать более правильные способы типа MAKEOPTS="-j2" (или -j4) кому что нравится...
Можно использовать distcc который существенно помогает ускориться (ну при наличии нескольких машин)...
Вот.
Спасибо все
Спасибо все понятно!
SMP System
На машине с несколькими процами лучше ставить что то типа этого
MAKEOPTS="-j3" это если два проца
Тогда скорость сборки оптимальная
_________________
Gentoo GNU/Linux 2.6.16 GCC 3.4.5 Dual Xeon
Почему 3, а не 2?
Почему 3, а не 2?
Ну так практика
Ну так практика показывает. Если выставить количество потоков на один больше числа процов то не будет возникать ситуации когда проц будет простаивать. Можно конечно потоков и больше ставить только это скорости не добавит тк тогда по несколько процессов gcc будет висеть на каждом проце.
ЗЫ При сборке некоторых программ эта опция специально отключается разроботчиками [openoffice например] потому что из за нее иогут возникнуть ошибки компиляции
_________________
Gentoo GNU/Linux 2.6.16 GCC 3.4.5 Dual Xeon
Выходит,
что на один процессор выгодно ставить -j2?
В какой то
В какой то степени да
Но тогда компиляция у тебя сожрёт все ресурсы системы
И нельзя например будет поиграть паралельно в unreal :-)
_________________
Gentoo GNU/Linux 2.6.16 GCC 3.4.5 Dual Xeon
Почему? я вот на
Почему? я вот на своем P4 2,8 выставлял -j5 (молодой был, гАрячий :)), ну не сказать, что прибавило производительности, но со своим делом справлялось :). Теперь-то я съехал на 3, разницы никакой :). Но определенно, на современных процах - не меньше -j2, иначе просто простой процессорного времени :)
_________________
Прежде чем задать вопрос, подумай, а не додумались до него раньше?
With Love from Siberia!
Re: Ну так практика
Странно. У меня четвертый пень с HT. Без -j2 компиляция OO 1.4 занимала ~9 часов. С -j2 шесть.
А мож я глюканул.
У меня эта
У меня эта опция не работала на старых версиях OO
На OO 2 она уже работает
2 winterheart
HT и smp вещи немного разные и прирост производительности у них тоже разный
У меня стоит в опциях -j5 но у меня два физических проца и каждый с HT
На одном проце с HT разница между -j5 и -j3 заметна не будет
Может даже оказаться что -j5 в этом случае окажется медленнее чем -j3
_________________
Gentoo GNU/Linux 2.6.16 GCC 3.4.5 Dual Xeon
И все таки мне
И все таки мне кажется что HT решает.
HT работает
HT работает немного медленнее чем smp
и у него есть небольшие ограничения
HT это разбиение одного ФИЗИЧЕСКОГО процессора на два логических имеющих один и тот же кеш
SMP тут у тебя уже ФИЗИЧЕСКИЕ процессоры являются полностью НЕЗАВИМЫМИ
у каждого свой кеш
Но тем не менее это вещь хорошая
_________________
Gentoo GNU/Linux 2.6.16 GCC 3.4.5 Dual Xeon
:-D Спасибо, но я
:-D Спасибо, но я знаю что такое HT и SMP.
Непонятно...
Не, можно конечно поставить -j9
но не факт что это получится быстрее чем -j2
На Celeron-M 1,5 с
На Celeron-M 1,5 с 512RAM, я использую "-j6", при условии, что кроме компиляции ничего на этой машине не нужно делать . И в большинстве случаев, это оправдано, а при сборке ядра (где много всякой мелочи) при помощи genkernel я вообще использую "--makeopts=-j12".
На самом деле, чем быстрее процессор и чем больше оперативки, тем больше можно запускать параллельных процессов.
лучше в одной.
лучше в одной. проблем меньше будет ;)
чтобы скачка одновременно с компиляцией шла
единственно что может помочь так это во второй консоли сначала запусти
emerge -f
вроде где-то
вроде где-то писалось, что цифра у ключика -j равна процессор + 1
Re: лучше в одной.
в /etc/make.conf FEATURES="parallel-fetch"
при условии >=sys-apps/portage-2.1
Ежели гнаться
Ежели гнаться за скоростью сборки то надо обратить внимание на 2 пакета.
Один называется ccache а второй distcc. Первый кэширует скомпиленные модули чтоб по 10 раз одно и то же не собирать. Второй нужен в пингвинарии (каждому пингвину по distcc) и позволяет раскидать сборку по соседям. Вашь способ можно юзать с великой осторожностью по причине блокировки пакетов, но некоторое ускорение он все же дает. Как правило закачка проходит быстрей нежели сборка. Так что я иногда с одной консольки качаю, в то время как на второй собирается все в кучку.
К этим двумя
К этим двумя штукам прибавилась третья - confcache, кеширующая работу скрипта configure на этапе настройки. Правда, она требует portage-2.1 и пока что жестко маскирована. Но, как говорится, хочешь помочь себе? помоги и другим заодно :).
_________________
Прежде чем задать вопрос, подумай, а не додумались до него раньше?
From Siberia with Love!