[distcc] plateau on 10Mbps ethernet (was gcc bootstraps with distcc)

Martin Pool mbp at sourcefrog.net
Sat Jun 21 08:31:43 GMT 2003

On 20 Jun 2003, Dara Hazeghi <dhazeghi at yahoo.com> wrote:

>> [0 length files]
> Well, this would certainly be ideal for me.

OK.  If I can think of a way to do it that does not break
compatibility too much I'll do it shortly, otherwise it might need to
wait just a little.  (Or perhaps be not on by default.)

> P.S. Another random question. I've been doing builds
> over a 10mbit network, and I've noticed that with more
> than 4 hosts, I really don't see much benefit. Is
> there a "smart" way to gather statistics on distcc?
> I'm guessing it may be the network, but I'd like to
> check before I go off and buy a new hub...

At the moment watching distccmon is probably the best way.  Ideally
you will see all machines with one or more jobs in Compiling state.
If you see many in Connecting, Sending or Receiving then that may mean
that your network is overloaded. 

I wouldn't be surprised if 10Mbps ran out of steam at 4 hosts.  

10Mbps is roughtly 1MB/s with distcc's low TCP overhead
Preprocessed source is typically 1MB/file

Therefore on 10Mbp/s you can only remotely compile about one file per
second.  If you're building complex programs on medium-slow machine
they might take 4s per file, so at 4 machines or less the network will
be saturated.

Compression may or may not help there.

Some friends are using distcc on a 1Gb/s network, and they benefit
from up to 24 remote CPUs.  (It's not a linear improvement because of
makefile inefficiencies, but there is an improvement.)


More information about the distcc mailing list