Compilação distribuída usando o distcc

cvs

Bom, vamos abordar em um breve artigo como distribuir a tarefa de compilar programas em seu Linux, uma tarefa muita das vezes demorada e pra quem possui máquinas antigas isso se torna quase uma tortura, então, se tiver mais de uma máquina pode reduzir o tempo usando a máquina ao lado para ajudar nessa compilação.

[ Hits: 18.361 ]

Por: Thiago Alves em 23/09/2004 | Blog: http://www.seeufosseopresidente.com.br


Colocando em prática



Uma vez instalado, inicie o daemon em cada computador com o seguinte comando (executado como root):

# distccd --daemon

No computador em que está o código que você deseja compilar, execute o seguinte comando:

$ export DISTCC_HOSTS="localhost computador1 computador2"

Mude o nomes computador1, computador2 pelo nome dos computadores na rede que estão rodando o distccd.

DICA: Se sua rede é pequena e não rola um servidor de nomes, use o /etc/hosts pra colocar o nome determinando os IPs.

Agora, simples... Na hora que for compilar o programa usando o make, adicione a opção -j da seguinte forma:

$ make -j4 CC=distcc

A opção -j informa quando jobs vão ser rodados simultaneamente. Use da maneira que achar melhor :-)

Página anterior     Próxima página

Páginas do artigo
   1. Introducão
   2. Colocando em prática
   3. Conclusões
Outros artigos deste autor

Servidor FTP com NetBSD (PureFTPD + MySQL)

OpenBSD Proxy - Squid, SquidGuard, SquidClamAV e AdZapper

Sylpheed - a GTK+ based, lightweight, and fast e-mail client

Aplicando o patch do grsecurity no kernel 2.4

Kernel 2.6 hacks

Leitura recomendada

Slides em PDF com o LaTeX

Exclusivo - Entrevista com Fábio Berbert, criador e mantenedor do projeto Viva o Linux!

Software livre, software comunitário!

Fazendo backup de DVDs

Filosofia do Open Source, um novo jogo?

  
Comentários
[1] Comentário enviado por fabio em 23/09/2004 - 01:56h

Olha... agora já sei como fazer pra compilar kernel mais rápido! :P
Alguém já fez esse teste? Há ganho de performance mesmo?

[]'s

[2] Comentário enviado por jllucca em 23/09/2004 - 13:41h

esse distcc é meio velho já, nunca mexi... mas, lembro de ter lido em algum lugar quando tava buscando help sobre o Gentoo que ele funciona muito bem e tanto com maquinas linux como windows...

infelizmente, nunca utilizei pra poder afirmar concerteza :/

[3] Comentário enviado por lordello em 23/09/2004 - 15:09h

Na verdade a opção -j deve ser usada com parcimônia... O ideal é que você coloque o número de computadores + um (incluindo o seu), ou seja, se na rede tiverem 5 máquinas (incluindo a sua), você deve usar a opção -j6 e assim por diante.

Belo artigo.
Acho bom ter uma conexão de rede boa também, assim evitando gargalos durante a compilação de programas pesados.

[4] Comentário enviado por wronieri em 23/09/2004 - 15:46h

Parece que se usar a opção -j em cluster tipo OpenMosix parece q tb há um ganho de desempenho tb mas este distcc nunca tinha ouvido falar... vou testar :-)

[5] Comentário enviado por androle em 23/09/2004 - 19:36h

Parece muito interessante. Em um duron 1200 compilo o kernel em 15 minutos (só com o que preciso). Num k6II 400 demorou mais de uma hora! No fim de semana vou testar com o distcc e ver se o duron compila em menos de 15 minutos com a ajuda do k6II

E quem tem máquinas matadoras, tipo PIV 2400? Quanto tempo demora para compilar um kernel?

Parabéns pelo artigo!

[6] Comentário enviado por tagallo em 24/09/2004 - 16:03h

androle, eu vi uns benchmarks no anandtech.com, e um dos parametros de comparaçao era o tempo necessario para compilar uma versao do kernel 2.6, com as configs padroes (aquelas que já vem setadas), os processadores mais fodas tavam levando em torno de 4 minutos se nao me engano... bem legal... considerando que eu demoro mais de uma hora pra compilar o meu kernel peladao no meu celeron 600


Contribuir com comentário