View previous topic :: View next topic |
Author |
Message |
boozo Advocate
Joined: 01 Jul 2004 Posts: 3193
|
Posted: Wed Feb 08, 2006 11:57 am Post subject: [Distcc - ccache] problème de configuration (résolu) |
|
|
'alute
bon là j'y suis depuis hier et... je craque impossible de faire tourner distcc correctement...
la configuration est simple pourtant mais j'ai trop la tête dans le guidon pour voir où je me plante alors si un regard neuf passe dans le coin...
details de la config : gcc-3.4 partout et pas de profile hardened sur ce coups-là d'autre part le client doit compiler avec le serveur et le serveur compilera tout seul comme un grand. disccd est au default runlevel pour les deux et un top -u distcc me montre bien les processus.
Client 192.168.1.1 :
/etc/conf.d/distccd
Code: | DISTCCD_OPTS="-j5"
DISTCCD_EXEC="/usr/bin/distccd"
DISTCCD_PIDFILE="/var/run/distccd/distccd.pid"
DISTCCD_OPTS="${DISTCCD_OPTS} --port 3632"
DISTCCD_OPTS="${DISTCCD_OPTS} --log-level critical"
DISTCCD_OPTS="${DISTCCD_OPTS} --allow 192.168.1.1 --allow 192.168.1.10"
DISTCCD_NICE="0" |
/etc/distcc/hosts
Code: | 192.168.1.1 192.168.1.10 |
/etc/make.conf
Code: | MAKEOPTS="-j5"
FEATURES="sandbox distcc ccache buildsyspkg"
DISTCC_DIR="/var/tmp/portage/.distcc"
CCACHE_DIR="/var/tmp/ccache"
CCACHE_SIZE="2G" |
Serveur 192.168.1.10 : /etc/conf.d/distccd
Code: | DISTCCD_OPTS="-j5"
DISTCCD_EXEC="/usr/bin/distccd"
DISTCCD_PIDFILE="/var/run/distccd/distccd.pid"
DISTCCD_OPTS="${DISTCCD_OPTS} --port 3632"
DISTCCD_OPTS="${DISTCCD_OPTS} --log-level critical"
DISTCCD_OPTS="${DISTCCD_OPTS} --allow 192.168.1.1 --allow 192.168.1.10"
DISTCCD_OPTS="${DISTCCD_OPTS} --listen 192.168.1.1"
DISTCCD_NICE="15" |
/etc/distcc/hosts
/etc/make.conf
Code: | MAKEOPTS="-j5"
FEATURES="sandbox distcc ccache buildsyspkg"
CCACHE_SIZE="2G"
CCACHE_DIR="/var/tmp/ccache"
DISTCC_DIR="${PORTAGE_TMPDIR}/.distcc" |
voilà... distccmon-gui &|| -text ne me renvois rien du tout merci de vos lumières _________________ " Un psychotique, c'est quelqu'un qui croit dur comme fer que 2 et 2 font 5, et qui en est pleinement satisfait.
Un névrosé, c'est quelqu'un qui sait pertinemment que 2 et 2 font 4, et ça le rend malade ! "
Last edited by boozo on Sat May 20, 2006 5:03 pm; edited 2 times in total |
|
Back to top |
|
|
anigel Bodhisattva
Joined: 14 Apr 2003 Posts: 1894 Location: Un petit bled pas loin de Limoges ;-)
|
Posted: Wed Feb 08, 2006 1:05 pm Post subject: Re: [Distcc - ccache] problème de configuration |
|
|
Plop,
J'apporte 2 / 3 corrections à ta config :
Client 192.168.1.1 :
/etc/conf.d/distccd
Code: | DISTCCD_OPTS="-j5"
DISTCCD_EXEC="/usr/bin/distccd"
DISTCCD_PIDFILE="/var/run/distccd/distccd.pid"
DISTCCD_OPTS="${DISTCCD_OPTS} --port 3632"
DISTCCD_OPTS="${DISTCCD_OPTS} --log-level critical"
DISTCCD_OPTS="${DISTCCD_OPTS} --allow 192.168.1.0/24"
DISTCCD_OPTS="${DISTCCD_OPTS} --listen 192.168.1.1"
DISTCCD_NICE="0" |
Serveur 192.168.1.10 :
/etc/conf.d/distccd
Code: | DISTCCD_OPTS="-j5"
DISTCCD_EXEC="/usr/bin/distccd"
DISTCCD_PIDFILE="/var/run/distccd/distccd.pid"
DISTCCD_OPTS="${DISTCCD_OPTS} --port 3632"
DISTCCD_OPTS="${DISTCCD_OPTS} --log-level critical"
DISTCCD_OPTS="${DISTCCD_OPTS} --allow 192.168.1./24"
DISTCCD_OPTS="${DISTCCD_OPTS} --listen 192.168.1.10"
DISTCCD_NICE="15" |
Explications : les directives de configuration de distcc sont sommaires (très sommaires même, à mon goût, cf le problème de sécurité connu à cause de ses limitations il y a presque 1 an maintenant).
--listen sert à spécifier sur quelle ip vont être reçues les demandes de compilation : tu dois donc utiliser l'une des ip de la machine sur laquelle tu es.
--allow prend en argument un netblock : tu autorises les requêtes venant des machines du sous-réseau spécifié (tu peux limiter en ajustant le /24 selon tes besoins, et en adaptant ta numérotation ip en même temps). _________________ Il y a 10 sortes d'individus en ce bas-monde : ceux qui causent binaire, et les autres. |
|
Back to top |
|
|
anigel Bodhisattva
Joined: 14 Apr 2003 Posts: 1894 Location: Un petit bled pas loin de Limoges ;-)
|
Posted: Wed Feb 08, 2006 1:07 pm Post subject: |
|
|
Ah, j'oubliais : le MAKEOPTS="-j5" doit être un peu surévalué sur ton serveur : car si lui ne doit pas demander au client de compiler pour lui, alors tu devrais lui demander de compiler moins de trucs en même temps. Donnes-nous les types de CPU que tu utilises pour chacune de tes machines stp, avec leurs spécificités (bi-core ? hyperthreading ? etc...). _________________ Il y a 10 sortes d'individus en ce bas-monde : ceux qui causent binaire, et les autres. |
|
Back to top |
|
|
-KuRGaN- Veteran
Joined: 05 Dec 2004 Posts: 1142 Location: Besançon (25) [FRANCE]
|
Posted: Wed Feb 08, 2006 1:30 pm Post subject: |
|
|
Excuse moi boozo mais je profite de ton thread sur distcc pour poser une petite question qui me turlupine:
voilà, j'ai un serveur avec un xen dessus et trois serveurs virtuels qui tournent dessus en plus de mon dom0.
Est-ce que ça vaut le coup que j'installe un serveur distcc sur chaque serveur virtuel en sachant que ces domaines virtuels sont limités en RAM mais pas en CPU, (un serveur virtuel peut prendre 99% du CPU si besoin et si les autres n'en n'ont pas besoin) ou plutôt en mettre juste un sur un serveur virtuel ??? _________________ Knight Gent00 Industries RiDeR !!!! |
|
Back to top |
|
|
boozo Advocate
Joined: 01 Jul 2004 Posts: 3193
|
|
Back to top |
|
|
anigel Bodhisattva
Joined: 14 Apr 2003 Posts: 1894 Location: Un petit bled pas loin de Limoges ;-)
|
Posted: Wed Feb 08, 2006 1:37 pm Post subject: |
|
|
-KuRGaN- wrote: | Excuse moi boozo mais je profite de ton thread sur distcc pour poser une petite question qui me turlupine:
voilà, j'ai un serveur avec un xen dessus et trois serveurs virtuels qui tournent dessus en plus de mon dom0.
Est-ce que ça vaut le coup que j'installe un serveur distcc sur chaque serveur virtuel en sachant que ces domaines virtuels sont limités en RAM mais pas en CPU, (un serveur virtuel peut prendre 99% du CPU si besoin et si les autres n'en n'ont pas besoin) ou plutôt en mettre juste un sur un serveur virtuel ??? |
Je pense que ça dépend de ta config matérielle (1 ou plusieurs cpu ? logiques ou physiques ?). Si tu n'as qu'un seul CPU physique, à mon avis le gain d'une config en distcc sera négligeable, voire nul ou pire, le temps pris pour faire transiter les requêtes étant largement supérieur au temps pris par la compil elle-même (si tes machines virtuelles peuvent effectivement prendre 99% du cpu).
Mais je ne suis pas sûr de ça, n'ayant jamais testé. Reste à vérifier en pratique ! _________________ Il y a 10 sortes d'individus en ce bas-monde : ceux qui causent binaire, et les autres. |
|
Back to top |
|
|
anigel Bodhisattva
Joined: 14 Apr 2003 Posts: 1894 Location: Un petit bled pas loin de Limoges ;-)
|
Posted: Wed Feb 08, 2006 1:46 pm Post subject: |
|
|
boozo wrote: | pour le -j , j'ai trouvé de tout... 2*cpu +1 ; 2*cpu ; etc... mais je suis d'accord avec toi il faut tester pour voir ce qui va le mieux sur le client c'est un P4 2.8GHz classique et sur le serveur c'est un celeron D350 3.2GHz sans HT |
La théorie (qui semble confirmée par mon "ressenti"), dit que les meilleures perfs sont obtenues avec (2 x cpu) +1. Autrement dit, pour toi, nous avons 2 CPUs : le P4 et le celeron, et pas de division logique (HT). Donc : 2 CPUs.
Sur ton serveur : -j3
Sur ton client : -j5
Mes 2 cents ^^. _________________ Il y a 10 sortes d'individus en ce bas-monde : ceux qui causent binaire, et les autres. |
|
Back to top |
|
|
boozo Advocate
Joined: 01 Jul 2004 Posts: 3193
|
|
Back to top |
|
|
-KuRGaN- Veteran
Joined: 05 Dec 2004 Posts: 1142 Location: Besançon (25) [FRANCE]
|
Posted: Wed Feb 08, 2006 2:17 pm Post subject: |
|
|
Dernière pollution promis !!!
En effet je n'ai qu'un CPU et je laisse Xen attribué les ressources CPU pour chaque domaines virtuels. Bon quand je dit qu'un domaine virtuel peut atteindre 99% c'est une image car il y a toujours au minimum 2 ou 3 % pour mon dom0 mais j'ai réussi a en faire monter un a plus de 85% et des bananes.
Merci pour ta réponse anigel, je vais faire un test et je posterai mes résultats si des gens sont intéressés!! _________________ Knight Gent00 Industries RiDeR !!!! |
|
Back to top |
|
|
k-root Guru
Joined: 08 Jan 2005 Posts: 428
|
Posted: Wed Feb 08, 2006 3:07 pm Post subject: Re: [Distcc - ccache] problème de configuration |
|
|
essaye avec cette conf, puis rajoute la directive listen... j'espere que ca vat fonctionner correctement avec tes machines.
Client 192.168.1.1 :
/etc/conf.d/distccd Code: | DISTCCD_EXEC="/usr/bin/distccd"
DISTCCD_PIDFILE="/var/run/distccd/distccd.pid"
DISTCCD_OPTS="${DISTCCD_OPTS} --port 3632"
DISTCCD_OPTS="${DISTCCD_OPTS} --log-level critical"
DISTCCD_OPTS="${DISTCCD_OPTS} -a 192.168.1.1"
DISTCCD_NICE="0" | /etc/distcc/hosts
Code: | 192.168.1.1 192.168.1.10 | /etc/make.conf Code: | MAKEOPTS="-j5"
FEATURES="sandbox distcc ccache buildsyspkg"
DISTCC_DIR="/var/tmp/portage/.distcc"
CCACHE_DIR="/var/tmp/ccache"
CCACHE_SIZE="2G" |
Serveur 192.168.1.10 :
/etc/conf.d/distccd Code: | DISTCCD_EXEC="/usr/bin/distccd"
DISTCCD_PIDFILE="/var/run/distccd/distccd.pid"
DISTCCD_OPTS="${DISTCCD_OPTS} --port 3632"
DISTCCD_OPTS="${DISTCCD_OPTS} --log-level critical"
DISTCCD_OPTS="${DISTCCD_OPTS} -a 192.168.1.1 -a 192.168.1.10"
DISTCCD_NICE="15" | /etc/distcc/hosts/etc/make.conf Code: | MAKEOPTS="-j5"
FEATURES="sandbox distcc ccache buildsyspkg"
CCACHE_SIZE="2G"
CCACHE_DIR="/var/tmp/ccache"
DISTCC_DIR="/var/tmp/portage/.distcc/.distcc" # l'erreur etait ici, je pense :) |
Et dans les tes logs : distccd arrive a dispatcher ?
chez moi Quote: | k-store treym # export DISTCC_DIR="${PORTAGE_TMPDIR}/.distcc"
k-store treym # env | grep TCC
DISTCC_LOG=
DISTCC_DIR=/.distcc
DISTCC_VERBOSE=0 |
pt-etre que c'est pour cela que tu ne voit rien avec distccmon-gui lancer sur ton serveur ? Quote: | distccmon-gnome[9480] (dcc_gnome_update_cb) Warning: poll failed
distccmon-gnome[9480] (dcc_mkdir) ERROR: mkdir /.distcc/state failed: Aucun fichier ou répertoire de ce type
|
_________________
boozo wrote: | Gentoo, ça mange des ours et baffe des buffles par 37°C avec un bob et des tongs |
|
|
Back to top |
|
|
boozo Advocate
Joined: 01 Jul 2004 Posts: 3193
|
Posted: Wed Feb 08, 2006 4:01 pm Post subject: Re: [Distcc - ccache] problème de configuration |
|
|
k-root wrote: |
Client 192.168.1.1 :
/etc/conf.d/distccd Code: |
DISTCCD_OPTS="${DISTCCD_OPTS} -a 192.168.1.1" |
|
pourquoi tu n'autorises pas le serveur ici ? et je ne comprends pas pourquoi tu supprimes --listen ?
k-root wrote: |
Serveur 192.168.1.10 :
/etc/conf.d/distccd Code: |
DISTCCD_OPTS="${DISTCCD_OPTS} -a 192.168.1.1 -a 192.168.1.10"
|
|
là également... --listen ?!
k-root wrote: |
/etc/make.conf
Code: | DISTCC_DIR="/var/tmp/portage/.distcc/.distcc" # l'erreur etait ici, je pense :) |
Et dans les tes logs : distccd arrive a dispatcher ?
chez moi Quote: | k-store treym # export DISTCC_DIR="${PORTAGE_TMPDIR}/.distcc"
k-store treym # env | grep TCC
DISTCC_LOG=
DISTCC_DIR=/.distcc
DISTCC_VERBOSE=0 |
pt-etre que c'est pour cela que tu ne voit rien avec distccmon-gui lancer sur ton serveur ? Quote: | distccmon-gnome[9480] (dcc_gnome_update_cb) Warning: poll failed
distccmon-gnome[9480] (dcc_mkdir) ERROR: mkdir /.distcc/state failed: Aucun fichier ou répertoire de ce type
|
|
alors là c'est bien vu mais je ne sais pas quelle est la bonne configuration dans le /etc/make.conf du client et du serveur j'ai maintenant :
Code: | DISTCC_DIR="/var/tmp/portage/.distcc" |
en revanche pourquoi tu rajoutes un repertoire .distcc en plus ? d'autre part quelle est la bonne stratégie : le .distcc doit-être dans /var/tmp/portage ou dans /var/tmp comme l'est ccache/ ?
sinon je viens de tester tes modifs malheureusement rien ne change
mais merci de te pencher sur mon pb _________________ " Un psychotique, c'est quelqu'un qui croit dur comme fer que 2 et 2 font 5, et qui en est pleinement satisfait.
Un névrosé, c'est quelqu'un qui sait pertinemment que 2 et 2 font 4, et ça le rend malade ! " |
|
Back to top |
|
|
boozo Advocate
Joined: 01 Jul 2004 Posts: 3193
|
Posted: Wed Feb 08, 2006 5:20 pm Post subject: |
|
|
bon j'avance...
un pb de variable d'environnement comme me l'a fait remarqué k-root tout à l'heure est semble-t-il à l'origine du pb : le fichier /etc/env.d/02distcc devant être renseigné par distcc-config normalement ne l'est pas j'ai bien essayé les différentes syntaxes mais même après le source rien ne changeait...
donc sur les deux machines j'ai rajouté dans leur /etc/env.d/02distcc respectif un petit :
Code: | DISTCC_DIR="/var/tmp/portage/.distcc"
et par la même occasion j'ai ajouté le log ;-p
DISTCC_LOG="/var/log/distccd.log" |
nb : penser à modifier /etc/conf.d/distccd tq:
Code: | DISTCCD_OPTS="${DISTCCD_OPTS} --log-file /var/log/distccd.log --log-level critical" |
puis qqes env-update && souce /etc/profile plus tard... (arf ! oui le pb du xterm en cours )
distccmon-gui et distccmon-text 1 sur le client fonctionne ! tatannn !
reste que sur le serveur je ne vois toujours rien de monitoré mais bon... petit à petit... _________________ " Un psychotique, c'est quelqu'un qui croit dur comme fer que 2 et 2 font 5, et qui en est pleinement satisfait.
Un névrosé, c'est quelqu'un qui sait pertinemment que 2 et 2 font 4, et ça le rend malade ! "
Last edited by boozo on Wed Feb 08, 2006 10:58 pm; edited 1 time in total |
|
Back to top |
|
|
anigel Bodhisattva
Joined: 14 Apr 2003 Posts: 1894 Location: Un petit bled pas loin de Limoges ;-)
|
Posted: Wed Feb 08, 2006 10:28 pm Post subject: |
|
|
boozo wrote: | reste que sur le serveur je vois toujours rien de monitoré mais bon... petit à petit... |
Hmm j'y pense brutalement : le monitoring en "live" de distcc n'a jamais fonctionné sur mes machines. Cela fait tellement longtemps, et surtout, je m'en tape tellement, que je n'y ai pas pensé de prime abord , mais c'est effectivement un problème chez moi aussi. Par contre, distcc distribue bien ses compilations (suffit de voir le temps mis pour compiler l'éditeur "joe", c'est mon unité de mesure perso ). _________________ Il y a 10 sortes d'individus en ce bas-monde : ceux qui causent binaire, et les autres. |
|
Back to top |
|
|
boozo Advocate
Joined: 01 Jul 2004 Posts: 3193
|
Posted: Wed Feb 08, 2006 10:57 pm Post subject: |
|
|
bon ben alors je vais faire de même et m'en taper le coquillard aussi
en fait j'étais parti pour faire des tests en mixte avec ssh car j'ai la possibilité de "detourner" qqes machines distantes à cet usage et trouver la meilleure configuration à adopter entre les compils LAN et WAN
Bref je bidouille depuis mais les posts sur la question sont... comment dire... divergent l'ordre et la syntaxe des hosts sont ma bête noire depuis qqes heures et le man peu clair sur la question enfin c'est mon avis sans compter que je cherche un prog pas trop gros pour faire un benchmark (et il faut que je pense à vider ccache entre temps histoire d'y voir qq chose sinon c'est pas drôle )
je tatonne... je tatonne...
mais au fait... toi avec toute tes machines là... tu as quoi comme config ? m'étonnerais que tu ne te sois pas pencher sur la question avec près de 200 machines ?! çà laisse rêveur !
[Edit] pour le côté serveur je pense qu'il n'affiche rien car la commande provient du client et que seul le client qui lance la tache peu voir le W en cour celà dit si j'ai raison c'est pas terrible qd m^
[Edit 2] bon çà tourne mais il semblerait bien que ce soit çà le pb c'est bien dommage
sinon je lache pour se soir avec la config en ssh mais n'hesitez pas me donner votre avis sur les optimisations _________________ " Un psychotique, c'est quelqu'un qui croit dur comme fer que 2 et 2 font 5, et qui en est pleinement satisfait.
Un névrosé, c'est quelqu'un qui sait pertinemment que 2 et 2 font 4, et ça le rend malade ! " |
|
Back to top |
|
|
k-root Guru
Joined: 08 Jan 2005 Posts: 428
|
Posted: Thu Feb 09, 2006 4:18 am Post subject: |
|
|
Sur les nodes tu ne peut monitorer que les processes ... px aux, xload.
les logs sont surement la solution (si qqun connaits un outils pour en extraire des stats )
ouhaip , la syntaxe des hosts est un peu lourdes a gerer, il ne faut pas juste recopier les fichier, il faut aussi changer l'ordre des hosts. premier dans la liste == premier candidat.
Tu peut aussi jouer sur le nombre de jobs que vat acepter chaque machine ...
pour distcc over ssh ... je sais pas trops ce que ca peut donner niveau perf.
WAM = temps de latence si a un jobe met 0.5s a etre compiler mais 1.5s a etre envoyer et 1.5 second a etre recuper ... ne faut il pas le compiler localement ? le gain depend du nombre de node dispo sur le wan, mais je dirait qu'il devrait etre elever (10, 20, ?)
ssh hum, encore un peu de cpuload, d'autant plus que le traffic reseau devient important. la charge pour localhost est deja elever quand il a a dispatcher un nombre important de jobs. dans ce cas , j'enleverais localhost de /etc/distcc/hosts.
tout depend du nombre de machines que tu compte utiliser, des jobs envoye a distcc, de l'etat du reseau . _________________
boozo wrote: | Gentoo, ça mange des ours et baffe des buffles par 37°C avec un bob et des tongs |
|
|
Back to top |
|
|
|