[distcc] [Fwd: "Busy" waiting when using distcc/ssh (and SMP
question)]
Marcelo Matus
mmatus at dinha.acms.arizona.edu
Tue Jul 8 03:37:50 GMT 2003
Martin Pool wrote:
>On 7 Jul 2003, Marcelo Matus <mmatus at dinha.acms.arizona.edu> wrote:
>
>
>>it seems the timeout is comming from the io.c file:
>>
>>
>>....
>>const int timeout = 15; /* seconds */
>>
>>
>>/**
>>* @todo Perhaps only apply the timeout for initial connections, not when
>>* doing regular IO.
>>**/
>>.........
>>
>>
>>the current timeout is too short for large compilations. If I use 150s, then
>>I have no problems. But, as the @todo says, maybe it is better
>>to have different timeouts for the initial connection
>>and the compilation.
>>
>>
>
>OK, this is done in CVS. Incidentally, removing the silly busyloop
>bug has greatly improved the efficiency of SSH connections! (Amazing
>eh? :-)
>
>My standard linux-2.5.68 kernel benchmark build over three machines on
>100Mbps now takes 237s over SSH and 161s over TCP, so it's still quite
>a lot slower.
>
>
>
Well, get more amazed, add the following lines to your .ssh/config file
(if you don't
have them):
Host *
Compression yes
In my case, compiling only against a remote host, the two cases gave me:
1.- export DISTCC_HOSTS="remotemachine" ==> tcp/ip
real 1m48.889s
user 0m6.380s
sys 0m1.640s
2.- export DISTCC_HOSTS="@remotemachine" ==> ssh+compression
real 0m39.167s
user 0m10.150s
sys 0m1.700s
Cool!, isn't?
Note: I use make -j2, in both cases. I ran both cases with the
distccmon-gnome
and you can see that the "Sending file" with tcp/ip takes forever.
Maybe my files are too large (ugly C++ with a lot of includes and
templates),
and/or the network is too slow (direct 100Mb, using cross cable, no hub
or switch),
but here ssh is winning.
Marcelo
More information about the distcc
mailing list