Compile e empacote o kernel com processadores ociosos em sua rede utilizando distcc, ccache e kernel-package no Debian

Se você resolve compilar e empacotar o kernel em uma máquina isoladamente, o tempo para a execução e finalização da tarefa tende ao infinito. Que tal usar os processadores de sua rede para agilizar o processo?! Neste artigo você saberá como fazer isso.

[ Hits: 23.361 ]

Por: Marco Sinhoreli em 20/04/2006


Usando o compile cluster



Algumas dicas importantes:
  • Para personalizar o seu pacote, edite o arquivo /etc/kernel-pkg.conf;
  • Se o cluster pode ser utilizado por qualquer pessoa que tenha uma conta shell em seu computador, inclua os hosts que pertencem ao cluster distcc no /etc/distcc/hosts, caso contrário coloque em ~/.distcc/hosts;
  • Você pode utilizar o aplicativo distccmon-gnome para visualizar as tarefas distribuídas no seu compile farm;
  • Para processador em SMP em seu farm, repita-o duas vezes no arquivo hosts do distcc.

Arquivo ~/.distcc/hosts:

# em localhost tenho um processador Intel com tecnologia Hyper Threading
localhost
localhost
192.168.0.1
192.168.0.2
# Neste host tenho 2 processadores
192.168.0.3
192.168.0.3
192.168.0.4
192.168.0.5
# Total de processadores: 8

Comando:

# CC="ccache gcc"
# CONCURRENCY_LEVEL=8
# PATH=/usr/lib/ccache:"${PATH}"
# CCACHE_PREFIX="distcc"
# make-kpkg --rootcmd fakeroot --append-to-version '-urna-amdgeode' --revision '0.99.1' kernel-image --initrd


Descrição das variáveis:
  • CC: diz ao make-kpkg que é o compilador C que será utilizado, neste caso o ccache;
  • CONCURRENCY_LEVEL: informa ao make-kpkg em quantas tarefas será dividida o processo de compilação;
  • PATH: até meu avô sabe dessa :)
  • CCACHE_PREFIX: informa quem o ccache deverá chamar para a função de compilação.

Página anterior     Próxima página

Páginas do artigo
   1. Descrição das aplicações utilizadas
   2. Tudo que você precisa no nó central
   3. Tudo que você precisa nos nós escravos
   4. Usando o compile cluster
   5. Conclusão
Outros artigos deste autor

Debmirror: Criando um repositório Debian na rede local

Leitura recomendada

O Kernel Linux

cpulimit - Limitando o uso da CPU por processo

Algoritmos de compressão

Compilação comentada do kernel

Compilação de Kernel baseado na versão 2.6 para o LTSP 4.2

  
Comentários
[1] Comentário enviado por removido em 21/04/2006 - 11:54h

Ótimo artigo, vou testar em breve.
Só achei que o artigo foca a instalação usando apt. Poderia ser dado exemplos de instação em Fedora com uso de YUM, e até mesmo compilação manual via fonte.
Além do mais, faltou citar que as portas envolvidas no trabalho devem ser liberadas no firewall.
Abraços e parabéns :)

[2] Comentário enviado por msinhore em 21/04/2006 - 13:46h

Olá Otavio,

Eu trabalho somente com Debian e por esse motivo não citei como configurar em outras distribuições. Acredito que os passos para configuração dos aplicatívos deva ser a mesma.
Com relação ao firewall, ele não era objeto do artigo e por esse motivo não citei sua configuração.

Abraços e sucesso.

[3] Comentário enviado por psabs em 21/04/2006 - 20:04h

Olá,

Antes de mais nada , parabéns pelo artigo.

Vc saberia se o distcc e o ccache funcionariam para compilar outros projetos tal como OpenOffice, gnome etc... ? Ou ele apenas serve pra compilar kernel ?

[]

[4] Comentário enviado por removido em 21/04/2006 - 20:31h

O homem enlouqueceu!!!!!!!!!!!...........
Realmente, não faltava mais nada...
O que esse tal de linux não é capaz, hein???
;-P

[5] Comentário enviado por thelinux em 24/04/2006 - 08:46h

Ao Marco Sinhoreli - Parabéns pelo ótimo tutorial.

Ao otavio - cara, isto aqui não é curso. O cara fez um excelente tutorial.

[6] Comentário enviado por msinhore em 24/04/2006 - 10:33h

Olá psabs,

Sem nenhuma restrição para compilar outros códigos. Lembre-se de declarar e exportar as mesmas variaveis antes de chamar o gcc.

Abraços

[7] Comentário enviado por removido em 24/04/2006 - 17:29h

thelinux, não me leve a mal. Realmente é um ótimo artigo.
Apenas expressei uma ideia complementar ao artigo.
Afinal, esse espaço é exatamente para isso, para discução de ideias que possam não apenas elogiar o artigo, mas agregar mais informação :)
Abraços

[8] Comentário enviado por thelinux em 24/04/2006 - 17:43h

Tranquilo otavio. Grande abraço. Bola para frente.

[9] Comentário enviado por israel_miranda em 13/12/2007 - 15:36h

UAU!!!
Cara, eu sei da existência do projeto do bewolf para computação distribuida, mas não fazia idéia que havia um software assim para GCC!!!

Muito bom o artigo, meus parabéns!!!


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts