[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