View previous topic :: View next topic |
Author |
Message |
Lenz Veteran
Joined: 17 Jul 2003 Posts: 1439 Location: Marburg [HE, D, EU]
|
Posted: Fri Jan 28, 2005 3:23 pm Post subject: distcc optimieren |
|
|
Hi,
habe gestern distcc installiert und eingerichtet. Funktioniert soweit auch gut, nur wird irgendwie von den Rechnern im Netzwerk immer nur häppchenweise in längeren Abständen (5-10 sec.) kompiliert (-> CPU Auslastung 100%). So richtig effektiv scheint das nicht zu laufen.
Ein zweites Problem ist, dass einige KDE Pakete nach dem Ende des Kompilierens - aber noch vor dem Installieren - mit einem roten Balken abbrechen. Woran könnte das liegen?
Drittens wäre noch eine Frage übrig: Kann man Distcc auch mal eben ausstellen ohne die gesamte Konfiguration abzuändern (in der make.conf)?
-- Lenz _________________ .:: Lenz' Signature 1.7b ::.
| Gentoo Linux since v1.4 (08-2003) [Screenshot]
| NetHack Highscore: 5.476.380 Pts., Val-Dwa-Fem-Law, ~ ascended to demigoddess-hood ~ |
|
Back to top |
|
|
redflash Apprentice
Joined: 17 Oct 2003 Posts: 213 Location: Germany
|
Posted: Fri Jan 28, 2005 4:02 pm Post subject: |
|
|
Abschalten lässt sich distcc wie folgt.
Code: | FEATURES="-distcc" emerge .. |
Die Probeleme mit KDE müsstest du etwas präzisieren, da ich keine Probleme bei KDE mit distcc feststellen konnte. Es kompilierte kde einwandfrei.
Die Pausen bei distcc kann leider auch nicht nachvollziehen. Wo es immer Pausen gibt ist während des Installierens und Konfigurierens. |
|
Back to top |
|
|
EliasP Guru
Joined: 06 Dec 2002 Posts: 318 Location: South-West Germany
|
Posted: Sat Jan 29, 2005 9:53 pm Post subject: |
|
|
Hab es zwar noch nicht ausprobiert, aber ich denke es würde helfen, den MAKEOPTS-Wert überall zu erhöhen, dadurch werden mehr parallele Prozesse gestartet die sich in ihren Pausen beim "Nachschub-holen" dann überlappen und somit sollten die CPUs dann mehr beschäftigt sein.
Sollte so ungefähr funktionieren wie HT bei P4s..
Hab aber auch noch n Problem mit distcc...
Hier stehen mehrere Rechner rum, manche x86, manche ~x86, woraus resultiert, dass die x86 natürlich nen älteren GCC als die ~x86 haben.
Also bricht das kompilieren oft ab, weil ./configure dann Funktionen definiert, die der alte GCC noch gar nicht kennt....
Gibt es hier ne Möglichkeit, auf den x86-ern nen neueren GCC zu installieren (ja, ich weiß, generell über SLOTS kein Problem) und distcc so zu konfigurieren, dass es bei Compiler-Anfragen von ~x86 Rechnern den neuen GCC verwendet??
Würde mein Leben hier deutlich erleichtern
Gruß
Elias P. |
|
Back to top |
|
|
misterjack Veteran
Joined: 03 Oct 2004 Posts: 1655
|
Posted: Sun Jan 30, 2005 6:25 am Post subject: |
|
|
/etc/package.keywords ??
gcc eintragen und neuesten emergen
oder auf ~x86 /etc/portage/package.mask
die ~x86 gcc maskieren und alten mergen
andere möglichkeiten gibts net, bei distcc sollte wirklich absolut die gleiche versionen auf den rechnern installiert sein _________________ „Meine Meinung steht fest! Bitte verwirren Sie mich nicht mit Tatsachen.“ |
|
Back to top |
|
|
Jinidog Guru
Joined: 26 Nov 2003 Posts: 593 Location: Berlin
|
Posted: Sun Jan 30, 2005 9:35 am Post subject: |
|
|
Schon unsauber ist es auch, einfach direkt per Ebuild den benötigen Compiler zu installieren und dann mittels gcc-config immer zwischen den gewünschten hin und her zu schalten. _________________ Just unused Microsoft-Software is good Microsoft-Software |
|
Back to top |
|
|
Lars Apprentice
Joined: 06 Feb 2003 Posts: 171 Location: Germany, near baltic sea
|
Posted: Tue Feb 01, 2005 9:42 am Post subject: |
|
|
Quote: | nur wird irgendwie von den Rechnern im Netzwerk immer nur häppchenweise in längeren Abständen (5-10 sec.) kompiliert (-> CPU Auslastung 100%). So richtig effektiv scheint das nicht zu laufen. |
In der /etc/distcc/hosts
Code: | localhost/1 rechner2/2 rechner3/2 ... |
Gib immer mindestens 2 für die entfernten Rechner an, dann klappt die Auslastung besser. Mit den Werten ruhig mal ein bisschen spielen, ist auch während der compilezeit möglich. Evtl. kann localhost auch weggelassen oder ans Ende gestellt werden.
Des weiteren in der /etc/make.conf
-jX mit so vielen Rechnern, wie es eingetragene Werte in der hosts Datei gibt (hier 5). Einfache Addition Das läßt sich allerdings nicht zur compilezeit ändern.
Die Auslastung sollte jetzt besser sein.
Lars _________________
Quote: | Alles was nicht einfach ist, ist entweder falsch oder zu kompliziert. |
V.Glazounov |
|
Back to top |
|
|
dek l33t
Joined: 16 May 2002 Posts: 657 Location: Germany
|
Posted: Wed Feb 02, 2005 2:16 pm Post subject: Re: distcc optimieren |
|
|
Lenz wrote: | Drittens wäre noch eine Frage übrig: Kann man Distcc auch mal eben ausstellen ohne die gesamte Konfiguration abzuändern (in der make.conf)? |
Ich hab' das folgendermaßen gelöst: distcc aus den FEATURES der /etc/make.conf nehmen und nur bei Bedarf aktivieren.
Mein alias dazu:
Code: | alias emd="FEATURES=distcc MAKEOPTS=\"-j7\" nice emerge" |
|
|
Back to top |
|
|
Jinidog Guru
Joined: 26 Nov 2003 Posts: 593 Location: Berlin
|
Posted: Wed Feb 02, 2005 3:52 pm Post subject: |
|
|
Ich habe mich auch mit distcc auseinandergesetzt.
Passt auf damit, dass kann die Kompilierzeit nämlich vergrößern.
Bei mir führt es bei bestimmten Konstellationen dazu, dass die schnelle Maschine sekundenweise gar nichts tut, während sie darauf wartet, dass eine andere langsamere Maschine, die auch nicht ausgelastet ist, ihre Ergebnisse zurückschickt.
Wichtig ist es also, auf dem schnellsten Rechner möglich maximal Auslastung zu erreichen.
Ich kenne alle Optimierungen, die genannt wurden.
Bei mir helfen sie recht wenig.
Ich denke, distcc arbeitet erst bei 100 MBit Netzwerken wirklich effizient.
Nicht unbedingt wegen der größeren Bandbreite, sondern vor allem wegen der geringeren Latenz.
Wenn der Server eine Sekunde auf das Ergebniss eines anderen Hosts warten muss, hätte der Server in dieser Zeit Millionen von Rechenoperationen durchführen können. _________________ Just unused Microsoft-Software is good Microsoft-Software |
|
Back to top |
|
|
|