[distcc] Improved ssh connection versus tcp/ip (C++ test)

Marcelo Matus mmatus at dinha.acms.arizona.edu
Tue Jul 8 03:49:49 GMT 2003


Hello:

Martin did some fixes in the ssh connection
(see the ["Busy" waiting when using distcc/ssh ] thread)
and here are some tests with large and ugly C++ code,
which tends to produce very large preprocessed files.

In all the cases, only the remote machine is in the DISTCC_HOSTS
list and I ran the compilation with make -j2:


1.-  export DISTCC_HOSTS="remotemachine"  ==> tcp/ip

real    1m48.889s
user    0m6.380s
sys     0m1.640s

2.-export DISTCC_HOSTS="@remotemachine"  ==> ssh

real    1m43.114s
user    0m7.380s
sys     0m1.760s


3.- export DISTCC_HOSTS="@remotemachine"  ==> ssh+compression

real    0m39.167s
user    0m10.150s
sys     0m1.700s

Note: this case was ran after adding the following lines to
the .ssh/config file.

Host *
    Compression yes


Again, this test is for C++ code over a 100Mb connection
(cross cable connection, no hub, no switch).


Marcelo

Marcelo Matus wrote:

> 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
>
>
> __ distcc mailing list            http://distcc.samba.org/
> To unsubscribe or change options: 
> http://lists.samba.org/cgi-bin/mailman/listinfo/distcc






More information about the distcc mailing list