LINUCA
LINUCA - Asociación de Usuarios GNU/Linux en Cantabria
CONTENIDOS
. La Asociación
. ¡ Apúntate a socio !
. Fotos
. Los más leídos
. Autores [Actividad]
. Últimos Comentarios
. ¡Todos los titulares!
. Guía de Estilo
. Cómo publicar en Linuca
. Links cortos
. Lista de Correo
   [Mensajes antiguos]
   [Etiqueta en la Lista]
. Todas las Listas
. ¿Sugerencias?
. ¡Sindícanos!
Gràcies Bulma!
Esta página usa el código fuente de Bulma :-)
Busquedas

Ultimos kernels
(22/09/2014 04:31:38)
Debian
Última actualización
stable: 12/07/2014
testing: 21/09/2014
unstable: 21/09/2014
distcc:Compilando en red (5921 lecturas)
Por JuanJo
jjosegutie (http://www.iteisa.com)
Creado el 29/10/2002 17:07 modificado el 14/11/2002 22:19

Bueno, visto que algunas personas en la party se interesaron en como funcionaba el distcc para compilar programas de forma distribuida pues se me ocurrió hacer este (mini)tutorial. Empezaremos por gentoo que es mi distro y luego pasaremos a las demas:

Pagina1/1

Gentoo:
root /root # emerge distcc
Con esto ya está instalado
root /root # vi /etc/make.conf (emacs sux)
añadimos las siguientes lineas:
CC="distcc gcc"
MAKEOPTS=" -j4 "        (la -j indica cuantos archivos se compilan al tiempo)
DISTCC_HOSTS="cartman"    (aqui añadir todos los servidores que querais separados por espacios)
si quisieramos dar más carga a un ordenador en concreto podriamos ponerle dos veces en la lista

DISTCC_HOSTS="cartman cartman" (no es el caso, cartman es un p200mmx)
despues de esto cualquier cosa que compilemos usará a cartman para compilar

Demas:

Aunque creo que en debian si esta el distcc, tengo entendido que es una version muy vieja asi que casi mejor lo bajaremos
root /root # wget -q http://distcc.samba.org/ftp/distcc/distcc-0.12.tar.gz -O - |tar xvfz -
root /root # cd distcc-0.12
root /root/distcc-0.12 # ./configure && make && make install
y con eso ya esta instalado
despues de esto lo que hay que hacer al compilar los programas es cambiar la variable de entorno CC y fijar la de DISTCC_HOSTS
CC="distcc gcc" ./configure
DISTCC_HOSTS="cartman" make -j8
y con eso compilará más rapido usando a cartman :-D

En los servidores:

Hay que compilar el distcc igual que arriba y despues arrancar el distccd para que acepte los archivos a compilar a traves de la red. Esto acostumbra a ser bueno ponerlo en un script de inicio para no tener que ir hasta el ordenata a ponerlo.

Ventajas:
  • Se tarda mucho menos en compilar
  • A más maquinas mejor (linealmente escalable)
  • High coolnes factor :-D
  • Funciona en todos? los programas que soportan make -jX
  • No hace falta sincronizar relojes ni sistemas de ficheros remotos ni nada
Desventajas:
  • Agujero de seguridad más grande que el culo de cartman :-D(No usar nunca en un ordenata directamente conectado a internet sin filtrarlo primero)
  • Hay (pocos) programas que fallan
  • Se necesita la misma version del compilador en todos los ordenatas sobre todo si vamos a compilar c++(recordar que el gcc-2.95 es incompatible con el 3.0 pero por ejemplo el 3.1.1 es compatible con el 3.1 con los dos priemeros numeros vale)
Pruebas:
Antes de nada especificaciones

cartman
Pentium 200-MMX
64MB RAM
Intel 10MB ISA NIC
kernel 2.4.19-xfs
gcc-3.1.1

ps
Pentium II-350
384MB RAM
D-Link DFE-538TX (RealTek RTL8139) PCI NIC
kernel 2.4.18-xfs
gcc-3.1

Esto va conectado a traves de un switch pequeñuco de 5 puertos.

Compilando kernel en ps:
*Sin distcc:
time make bzImage CC=gcc -j8
real 14m53.223s
user 14m8.750s
sys 0m33.250s

*Con distcc:
time DISTCC_HOSTS="ps ps ps cartman" make bzImage CC="distcc gcc" -j8
real 11m35.187s
user 2m14.750s
sys 0m21.340s
Hay que tener en cuenta que el ordenador al que estamos distribuyendo es peor, si distribuyeramos al reves(desde cartman a ps) se tardaria lo mismo(+/-) pero comparando con lo que tardaria solo en cartman habría más diferencia.

Pues nada en el proximo capitulo os hablo del ccache para que todavia tardeis menos en compilar el kernel :-D

Imprimir
Version para
imprimir

Imprimir
Version
PDF
Comentarios
1.  Re: distcc:Compilando en red (29/10/2002 23:53, #84)
  Por: RiCe
jj, esto es una pasada.. para compialar el gentoo viene ke ni pintao ;) probaremos algo con el apt-build haber ke pasa.

 
2.  Re: distcc:Compilando en red (31/10/2002 13:00, #89)
  Por: Bolo (http://linuca.org/)
Mola mucho eso del distcc, no tenia ni idea de que algo asi existiera... Muy, muy instructivo... Gracias!

 
3.  Re: distcc:Compilando en red (10/11/2002 02:10, #110)
  Por: Saiyine (http://clubdelphi.com/saiyine)
DISTCC_HOSTS="cartman" (aqui añadir todos los servidores que querais separados por comas)

Y sin embargo, en el articulo declaras dos veces DISTCC_HOSTS con varios servidores sin usar comas ????


 
4.  Re: distcc:Compilando en red (14/11/2002 22:21, #122)
  Por: jjosegutie (http://ps.kicks-ass.org)
si lo siento es cierto ya está cambiado en la pagina, mis disculpas a quien lo haya intentado y no lo haya echado a andar por mi culpa :-(

 
Calificacion
***0
Votos: 15
Relacionados
. ccache:Compilando todavia mas deprisa
SECCIONES
Artículo
Truco
Noticias
Breve
Enlace
Linuca
Libros
Tira ECOL
Tira Ecol
Modificado: 3/3/2006 17:03:23 | Tiempo Total: 0.003 segs | Kernel: Linux - x86_64 - 2.6.18-xen | Last Boot: 03/12/2010 01:21 CET
Powered By WEB-Bulma   Apache   Mysql   PHP   Gimp