distcc gemeinsam stärker Jan Grosser, email@jan

Download Report

Transcript distcc gemeinsam stärker Jan Grosser, email@jan

distcc
gemeinsam stärker
Bild: CC-BY-NC-SA Jphilipson/flickr
Jan Grosser, [email protected]
Gentoo Barcamp
Troisdorf, 01.08.2015
Inhalt
●
Überblick distcc
●
Set-Up
●
Konfiguration Client Host (Gentoo)
●
Konfiguration Helper Host (Fedora)
●
Ergebnisse
●
Zusammenfassung
Überblick distcc
●
Verteiltes Compilieren von [Objective-]C/C++
●
Via Netzwerk
●
Untersch. Architekturen, OSS, Bibliotheken
●
Einfache Installation/Einrichtung (?)
●
https://code.google.com/p/distcc/
●
https://wiki.gentoo.org/wiki/Distcc
●
https://wiki.gentoo.org/wiki/Distcc/CrossCompiling
Set-Up
Helper Host (Core2 Duo)
Client Host (i5)
Ethernet
thor.asgard.lan
ThinkPad T410
Intel Core i5 M520, 4 x 2,4 GHz
6 GB RAM
Gentoo Stable, gcc 4.8.4
distcc 3.1
odin.asgard.lan
ThinkPad R400
Intel Core2 Duo T5870, 2 x 2 GHz
4 GB RAM
Fedora C21, gcc 4.9.2
distcc 3.2rc1 (Fedora build)
Konfiguration Client Host (i5)
●
# emerge --ask distcc
●
/etc/portage/make.conf
●
–
CFLAGS=“-march=corei7 -mtune=corei7 ...“
–
MAKEOPTS=“-j7 -l4“
–
FEATURES=“distcc distcc-pump“
/etc/distcc/hosts
–
●
127.0.0.1,cpp,lzo odin.asgard.lan,cpp,lzo
# distccd --daemon --allow 192.168.1.0/24
--allow 127.0.0.1 \
--log-level notice --log-file
Konfiguration Helper Host
(Core2 Duo)
●
# yum install distcc-server
●
# useradd distcc
●
●
# ln -s /usr/bin/x86_64-redhat-linux-gnu-gcc \
/usr/bin/x86_64-pc-linux-gnu-gcc
# distccd --daemon --allow 192.168.1.0/24 \
--log-level notice \
--log-file /var/log/distcc/distcc.log
Ergebnisse #1
●
thor (client host)
# emerge --ask app-editors/nano
distcc[5593] ERROR: compile color.c on odin.asgard.lan,cpp,lzo failed
distcc[5593] (dcc_build_somewhere) Warning: remote compilation of 'color.c' failed,
retrying locally
distcc[5593] Warning: failed to distribute color.c to odin.asgard.lan,cpp,lzo, running
locally instead
istcc[5593] (dcc_please_send_email_after_investigation) Warning: remote
compilation of 'color.c' failed, retried locally and got a different result.
distcc[5593] (dcc_note_discrepancy) Warning: now using plain distcc, possibly due to
inconsistent file system changes during build
●
odin (helper host) – distcc logs
distccd[9393] (dcc_job_summary) client: 192.168.1.215:38790 COMPILE_ERROR
exit:1 sig:0 core:0 ret:0 time:370ms x86_64-pc-linux-gnu-gcc color.c
...
Ergebnisse #2
●
gcc 4.8.4 auf Fedora kompiliert
=> keine Veränderung
Ergebnisse #3
●
●
# time emerge app-editors/nano-2.36 (auf thor)
–
ohne distcc (real): (42±2) Sekunden
–
ohne distcc (user): (36±2) Sekunden
–
mit distcc (real):
(51±2) Sekunden
–
mit distcc (user):
(42±2) Sekunden
#time emerge dev-libs/openssl-1.0.1p (auf thor)
–
ohne distcc (real): (198±2) Sekunden
–
ohne distcc (user): (219±2) Sekunden
–
mit distcc (real):
(194±5) Sekunden
–
mit distcc (user):
(136±3) Sekunden
Zusammenfassung
●
●
●
Konfiguration in gemischter Umgebung nicht
trivial aber machbar
Geschwindigkeits-Schub bei GentooPaketinstallation bislang nicht erreicht
Unklar, warum das Compilieren einzelner Files
schiefläuft (gcc, Libraries?)
Ausblick
●
Debugging
●
SSH/Public Key Zugriff
●
Compilieren für andere Architekturen (Atom,
ARM)