# Distcc pequena duvida e curiosidade...

## Mythos

Quando uma pessoa tem 2 computadores em distcc a conta é -j5 ou -j3 ?

MAKEOPTS="-j5"

???

----------

## fernandotcl

O número recomendado é o número de processadores + 1. Não sei como o distcc funciona, mas acho que ele compila arquivos diferentes nas duas máquinas. Portanto, seria 1 + 1 e 1 + 1, portanto, -j4. Já se o distcc atuar como se os dois computadores estiverem em cluster, o que eu acho improvável, seria -j3 (1 + 1 e 1).

Como você chegou no -j5?  :Confused: 

----------

## Mythos

Umm algures ouvi dizer que era -jN e N era o numero de processadores x2 +1 ... logo se tenho 2 processadores 2x2 +1 .

 Mas queria saber se era isso mesmo ...

----------

## fernandotcl

 *Mythos wrote:*   

> Umm algures ouvi dizer que era -jN e N era o numero de processadores x2 +1 ... logo se tenho 2 processadores 2x2 +1 .

 

Isso é um pouco controverso, pesquisando eu encontrei pessoas dizendo que o número é 2x + 1, outras dizendo 2x, outras x + 1 e até só x. Isso não é uma regra estrita, você só precisa ter um valor maior que 2 para rodar o distcc, mas o melhor desempenho é difícil calcular. Eu iria com x + 1, é o que o make.conf recomendava da última vez que eu instalei Gentoo.

----------

## RoadRunner

É sempre o número total de processadores mais 1. Se tens dois processadores vais ter -j3, ou seja uma máquina com um processador vai estar a executar um job e tem mais 2 na queue, um irá para a outra máquina e terás ainda outro em queue. Quantos mais jobs em queue tiveres melhor, até um certo limite a partir do qual a performance decai.

Eu fiz uns testes e basicamente uma compilação de um kernel num dual com -j2 ou -j10 não se nota nada de significativo. com - j1 nota-se uma perda significativa. Com -j20 já se começam a ver resultados menos performantes. Daí que uso sempre -j3, ou seja número total de processadores mais 1.

----------

## Mythos

bom vou então mudar para -j3 ...

já agora mais uma coisa para meter o disttcmon-gnome a funcionar tenho que fazer isto :

DISTCC_HOSTS='127.0.0.1 red green blue 192.168.1.3 yellow red orange'

export DISTCC_HOSTS ??

Como é que meto ai duas hosts e onde aplico no /etc/profile ?

----------

## fernandotcl

 *Mythos wrote:*   

> já agora mais uma coisa para meter o disttcmon-gnome a funcionar tenho que fazer isto :
> 
> DISTCC_HOSTS='127.0.0.1 red green blue 192.168.1.3 yellow red orange'
> 
> export DISTCC_HOSTS ??
> ...

 

Na primeira você define a variável e depois aplica pro sistema inteiro. É mais prático fazer "export DISTCC_HOSTS='...'".

Você pode colocar no /etc/profile, mas o lugar oficial para scripts que ajustam variáveis do ambiente (exceto PS1 e outras do tipo) é em /etc/env.d. Crie um arquivo lá, com um número não utilizado, por exempo, "40distcc". Esses números servem para determinar a ordem de execução. Depois, basta um env-update.

----------

## Mythos

oki thanx  :Smile: 

eu meti assim distcc :

```
/etc/profile

export DISTCC_DIR='/var/tmp/.distcc'
```

```
/etc/make.conf

MAKEOPTS="-j3"

FEATURES="distcc ccache"

DISTCC_DIR="var/tmp/portage/.distcc/' distccmon-gnome"

DISTCC_HOSTS="127.0.0.1 192.168.1.3"
```

----------

## klap

existe algum comando pra ativar o distcc ou ele vai automatico ao colocar no make.conf ?

----------

## Mythos

Nope, tens que tu meter à mão no make.conf

----------

## klap

 *Mythos wrote:*   

> Nope, tens que tu meter à mão no make.conf

 

eu uso suse em um outro micro 

posso fazer isso com ele ?

----------

## fernandotcl

Instalados os devidos pacotes, não vejo problemas. O que acontece é que antes de iniciar uma compilação, o Portage faz um source no make.conf, ou seja, faz com que aquele arquivo seja lido e suas variáveis sejam exportadas. Na verdade, são variáveis do ambiente. Você pode colocá-las no ~/.bash_profile, por exemplo, ou simplesmente fazer "export DISTCC_DIR=...".

----------

## klap

 *fernandotcl wrote:*   

> Instalados os devidos pacotes, não vejo problemas. O que acontece é que antes de iniciar uma compilação, o Portage faz um source no make.conf, ou seja, faz com que aquele arquivo seja lido e suas variáveis sejam exportadas. Na verdade, são variáveis do ambiente. Você pode colocá-las no ~/.bash_profile, por exemplo, ou simplesmente fazer "export DISTCC_DIR=...".

 

Qual pacote eu teria de instalar no suse?

distcc ??

nunca fiz isso...

tnx

----------

## fernandotcl

Bem, eu confeso que também não (ainda mais no Suse). Talvez nem tenha o pacote distcc no Suse, nesse caso você tem que correr atrás dos sources, fazer um RPM e instalar (ou instalar sem fazer RPM, enxendo seu diretório de lixo  :Very Happy: ).

----------

## Karma_Police

Eu instalei no suse pelo yast e funciona. Só tens de procurar distcc. se quiseres instalas tb o distccmon para monotorizar (ainda não consegui por a funcionar o distccmon... nem no gentoo nem no suse. Mas tb ainda não procurei como o fazer). Eu instalei a partir da net (fiz a instalação toda pela net, a partir do boot cd) portanto não sei se estará tb no cd, mas é um pacote pequeno por isso não há problema. depois de instalares é só fazeres "$/etc/init.d/distccd start" e ele fica pronto a trabalhar com o que o gentoo lhe enviar.

----------

## klap

 *Karma_Police wrote:*   

> Eu instalei no suse pelo yast e funciona. Só tens de procurar distcc. se quiseres instalas tb o distccmon para monotorizar (ainda não consegui por a funcionar o distccmon... nem no gentoo nem no suse. Mas tb ainda não procurei como o fazer). Eu instalei a partir da net (fiz a instalação toda pela net, a partir do boot cd) portanto não sei se estará tb no cd, mas é um pacote pequeno por isso não há problema. depois de instalares é só fazeres "$/etc/init.d/distccd start" e ele fica pronto a trabalhar com o que o gentoo lhe enviar.

 

opa!!!

bacanaaa

vai dar pra brincar legal agora  :Razz: 

minhas noite de deixar compilando no meu mmx200 vaum acabar

ashsakldjh

Tnx!

----------

## klap

 *fernandotcl wrote:*   

> Bem, eu confeso que também não (ainda mais no Suse). Talvez nem tenha o pacote distcc no Suse, nesse caso você tem que correr atrás dos sources, fazer um RPM e instalar (ou instalar sem fazer RPM, enxendo seu diretório de lixo ).

 

como assim "enxendo seu diretorio de lixo" ?

boiei nessa ^^

----------

## fernandotcl

Quando você instala manualmente um programa sem tomar o cuidado de ver que arquivos foram instalados (como geralmente se faz), vai ser muito difícil para desinstalar depois. Um monte de arquivos fantasmas.  :Very Happy: 

----------

## klap

 *fernandotcl wrote:*   

> Quando você instala manualmente um programa sem tomar o cuidado de ver que arquivos foram instalados (como geralmente se faz), vai ser muito difícil para desinstalar depois. Um monte de arquivos fantasmas. 

 

ah

sakei...

tem alguma forma de instalar na mao os arquivos de forma segura?

----------

## fernandotcl

 *klap wrote:*   

> ah
> 
> sakei...
> 
> tem alguma forma de instalar na mao os arquivos de forma segura?

 

Antes de instalar, faz um "find /" e salva pra um arquivo. Depois de instalado, faz outro "find /". A diferença entre eles são os arquivos. Um diff e um awk devem bastar. Depois pra desinstalar é só mandar um cat do arquivo pro rm.

----------

## klap

 *fernandotcl wrote:*   

>  *klap wrote:*   ah
> 
> sakei...
> 
> tem alguma forma de instalar na mao os arquivos de forma segura? 
> ...

 

boua  :Very Happy: 

----------

## klap

 *Karma_Police wrote:*   

> Eu instalei no suse pelo yast e funciona. Só tens de procurar distcc. se quiseres instalas tb o distccmon para monotorizar (ainda não consegui por a funcionar o distccmon... nem no gentoo nem no suse. Mas tb ainda não procurei como o fazer). Eu instalei a partir da net (fiz a instalação toda pela net, a partir do boot cd) portanto não sei se estará tb no cd, mas é um pacote pequeno por isso não há problema. depois de instalares é só fazeres "$/etc/init.d/distccd start" e ele fica pronto a trabalhar com o que o gentoo lhe enviar.

 

eu tenho que mexer em algum arquivo de conf???

ta dando paus  :Sad: 

flwz

----------

## Karma_Police

Eu não tive de mexer em nenhum conf. secalhar estás a tentar instalar alguma coisa que não suporte compilação em paralelo.

Experimenta para testar fazer emerge a uma coisa pequena como o nano ou o links. eu fiz a estes dois para experimentar e vendo o 'top' no pc com suse apareceu lá o distccd...

----------

