The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

Акселерация сборки Qt в Gentoo при помощи distcc (qt gentoo compile distcc)


<< Предыдущая ИНДЕКС Исправить src / Печать Следующая >>
Ключевые слова: qt, gentoo, compile, distcc,  (найти похожие документы)
From: xwrs <xwrs@ukr.net.> Newsgroups: email Date: Mon, 10 Aug 2009 14:31:37 +0000 (UTC) Subject: Акселерация сборки Qt в Gentoo при помощи distcc Сегодня решил установить qt и вспомнил сколько он собирается на Celeron 420 1.6GHz, 512DDR2. Вот результаты моих изощрений над distcc Рядом с моим рабочим местом находится серверная в которой 2x(Intel(R) Xeon(TM) CPU 3.00GHz x2) 4Gb RAM с установленным Gentoo. В соседнем кабинете сервер терминалов Core2Duo E5400 2.2Ghz 2Gb RAM тоже с Gentoo. Вот и осенило меня что можно заставить эти простаивающие "мощностя" поработать на меня (верней на мой Celeron 420) Я услышал о программах distcc и ccache и они меня заинтересовали. На данный момент у меня скорость сборки многих пакетов увеличилать на ~40%. И вот что для этого нужно Для начала определимся с условиями работы distcc. Настоятельно рекомендуется использовать одну версию gcc и distcc на всех компьютерах этой небольшой вычислительной системы. Это поможет избежать ошибок при сборке. Также, если компьютеров не так много, они не очень мощные или у Вас низкая скорость сети, то выигрыша от настройки данной системы Вы не получите. Поэтому желательно иметь хотя-бы 100Мбитную сеть и пару-тройку неплохих компьютеров (желательно многопроцессорных/многоядерных). Итак. Устанавливаем distcc и ccache. emerge distcc emerge ccache После установки необходимо заставить систему портежей работать с distcc. В make.conf дописываем FEATURES="ccache distcc" #фичи portage CCACHE_DIR="/var/tmp/ccache" #путь к кэшу ccache CCACHE_SIZE="4G" #размер кэша DISTCC_HOSTS="host1 host2 hostN" #разрешенные хосты DISTCC_DIR="/tmp/.distcc" #временный каталог для работы distcc Меняем MAKEOPTS="-jX" #X - суммарное количество процессоров всех компьютеров В файле /etc/conf.d/distccd находим похожие строки и меняем аналогично DISTCCD_OPTS="${DISTCCD_OPTS} --allow 192.168.100.0/24" #подсеть с которой мы работаем DISTCCD_OPTS="${DISTCCD_OPTS} --listen 192.168.100.105" #ip интерфейса который слушаем Да и еще я поменял себе уровень журналирования чтобы можно было протестировать работу distccd на серверах DISTCCD_OPTS="${DISTCCD_OPTS} --log-level debug" В файле /etc/distcc/hosts через пробел пишем адреса или имена машин, которые будут помогать нам компилировать. Например 127.0.0.1 192.168.100.105 192.168.100.125 192.168.100.7 Запускаем distccd на всех "подопытных" /etc/init.d/distccd start Не забудьте, что настраивать все машины нужно одинаково независимо от того будут они собирать пакеты для других или для себя. Вот собственно и все. Теперь можно устанавливать программы на слабых компьютерах используя вычислительные ресурсы, например, файлового сервера или простаивающих компьютеров. Список литературы: http://www.gentoo.org/doc/ru/distcc.xml http://linux2.pp.ru/tag/distcc

<< Предыдущая ИНДЕКС Исправить src / Печать Следующая >>

Обсуждение [ RSS ]
  • 1, Inspirra (ok), 18:48, 28/08/2009 [ответить]  
  • +/
    Почему нет упоминания о:
    distccmon-text
    distccmon-gui    

    Не сказано про рекомендуемое количество -jX

     
  • 2, i (??), 08:40, 01/09/2009 [ответить]  
  • +/
    и gcc должен быть одинаковый, две первые цифры по крайней мере.
     
  • 3, seyko (ok), 04:07, 06/09/2009 [ответить]  
  • +/
    В своё время пробовал эти самые ccache и distcc... В результате оставил только ccache и только для сборки ядра. Ибо сразу собрать как надо почти никогда не получается, а для повторной сборки этот ccache очень неплох (ускоряет сборку после make clean). Для ускорения сборки остального (Qt в частности) ccache не нужен (не помогает) и даже вреден (место на диске занимает под кэш и не дай бог вы параметры сборки или компилятор поменяете)

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

    почему не сказано про опцию pch для сборки Qt? всё никак не проверю, но для c++ программ, специальным образом написанных (один супер-include файл), в частности qt-библиотеки, и gcc версии больше 2.96 можно указать опцию сборки -pch, когда этот самый супер-include предкомпилируется один раз и используется потом многократно... вот тут и должно быть ускорение. ибо основное время тратиться в c++ на разборку include... да, а вы пробовали использовать для сборки qt watcom копмилятор? вроде как быстрее gcc (по слухам). не знаю только, может gcc последних версий (4.x) ускорился (я всё ещё на 3.4.6 сижу)

     
     
  • 4, backbone (ok), 13:07, 13/02/2011 [^] [^^] [^^^] [ответить]  
  • +/
    > и не дай бог вы параметры сборки или компилятор поменяете

    в ccache это учитывается

     

     Добавить комментарий
    Имя:
    E-Mail:
    Заголовок:
    Текст:




    Партнёры:
    PostgresPro
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2024 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру