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