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: 17.575 ]

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

Aplicando o patch do grsecurity no kernel 2.4

Servidor de rede (PDC - Proxy Transparente - DNS)

Kernel 2.6 hacks

Servidor Web com NetBSD (Apache + PHP + MySQL + *)

Compilando Apache 2 com PHP, MySQL, mod_perl e mod_ssl

Leitura recomendada

Instalação básica do FreeBSD 6.1 (passo a passo)

Fazendo backup de DVDs

Alta Disponibilidade (HA) com Debian (Heartbeat + DRBD + Mon)

Saiba como ativar dois ou mais fbpagers no Fluxbox

Guia de referência do ISOLINUX (parte 2)

  
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




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner
Linux banner
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts