Mijn vraag
Ik probeer distcc op te zetten zodat alle compilaties van onze laptops worden geoffload naar een snellere machine. Nu worden er echter slechts enkele jobs naar de slave gestuurd en blijven de meeste jobs gewoon op de laptop zelf uitgevoerd. De master kan wel bij de slave - sommige jobs worden dus wel op de slave uitgevoerd.
Relevante software en hardware die ik gebruik
Zowel master als slave draaien op een up-to-date debian stretch-installatie. distcc is het pakket dat standaard in de repos zit (3.1.6.2+b1). Als compiler is clang 6.0 geinstalleerd en geconfigureerd als default (via update-alternatives).
Wat ik al gevonden of geprobeerd heb
- expliciet aantal jobs voor localhost in .distcc/hosts op 0 zetten (werkt niet, geeft een error)
- expliciet aantal jobs voor localhost in .distcc/hosts op 1 zetten (genegeerd, nog steeds 4 jobs localhost)
- DISTCC_FALLBACK op 0 gezet - er komen geen errors van de slave
Als ik een compile start zie ik in het begin wel een aantal jobs op slave draaien, voorbeeld uit distccmon-text:
Na bijvoorbeeld een minuut blijven er enkel maar entries van localhost over. Ik heb ook logging aangezet, en daar zie ik ook dat bepaalde jobs op localhost worden uitgevoerd. Sterker nog, de allereerste regel begint met
Er zijn dus sowieso geen errors op dit punt die distcc laten besluiten het toch lokaal te proberen.
~/.distcc/hosts op master:
/etc/default/discc op slave:
Ik heb geen flauw idee wat ik nog meer zou kunnen proberen. Hoe krijg ik distcc zover dat het genoeg jobs naar de slave stuurt en localhost met rust laat?
Ik probeer distcc op te zetten zodat alle compilaties van onze laptops worden geoffload naar een snellere machine. Nu worden er echter slechts enkele jobs naar de slave gestuurd en blijven de meeste jobs gewoon op de laptop zelf uitgevoerd. De master kan wel bij de slave - sommige jobs worden dus wel op de slave uitgevoerd.
Relevante software en hardware die ik gebruik
Zowel master als slave draaien op een up-to-date debian stretch-installatie. distcc is het pakket dat standaard in de repos zit (3.1.6.2+b1). Als compiler is clang 6.0 geinstalleerd en geconfigureerd als default (via update-alternatives).
Wat ik al gevonden of geprobeerd heb
- expliciet aantal jobs voor localhost in .distcc/hosts op 0 zetten (werkt niet, geeft een error)
- expliciet aantal jobs voor localhost in .distcc/hosts op 1 zetten (genegeerd, nog steeds 4 jobs localhost)
- DISTCC_FALLBACK op 0 gezet - er komen geen errors van de slave
Als ik een compile start zie ik in het begin wel een aantal jobs op slave draaien, voorbeeld uit distccmon-text:
code:
1
2
3
4
5
6
| 11466 Compile iterator.c 192.168.1.16[0] 11184 Compile easylogging++.cc 192.168.1.16[2] 11179 Compile localhost[0] 11454 Compile localhost[1] 11248 Compile localhost[2] 11180 Compile localhost[3] |
Na bijvoorbeeld een minuut blijven er enkel maar entries van localhost over. Ik heb ook logging aangezet, en daar zie ik ook dat bepaalde jobs op localhost worden uitgevoerd. Sterker nog, de allereerste regel begint met
code:
1
| distcc[18115] exec on localhost: /usr/bin/c++ ... |
Er zijn dus sowieso geen errors op dit punt die distcc laten besluiten het toch lokaal te proberen.
~/.distcc/hosts op master:
code:
1
| 192.168.1.16/64 |
/etc/default/discc op slave:
code:
1
2
3
4
5
6
| STARTDISTCC="true" ALLOWEDNETS="192.168.1.0/24" LISTENER="192.168.1.16" NICE="10" JOBS="64" ZEROCONF="false" |
Ik heb geen flauw idee wat ik nog meer zou kunnen proberen. Hoe krijg ik distcc zover dat het genoeg jobs naar de slave stuurt en localhost met rust laat?
Ik ontken het bestaan van IE.