lee <l...@yagibdah.de> wrote:

> <waben...@gmail.com> writes:
> 
> > lee <l...@yagibdah.de> wrote:
> >
> >> Hi,
> >> 
> >> what's taking so long when emerging packages despite distcc is
> >> used?
> >> 
> >> I have disallowed compiling on the local machine (which is the one
> >> emerge is running on) through distcc settings because the local
> >> machine is relatively slow.  Yet I can see some gcc processes
> >> running on the local machine, and emerging goes painfully slow.
> >> Using distcc doesn't seem to make it any faster, though disabling
> >> local compiling seems to help a bit.
> >> 
> >> Some compilations are being run on the remote machine, so distcc
> >> does work.  The log file on the remote machine shows compilation
> >> times of a few milliseconds up to about 1.5 seconds at most.  The
> >> distcc server would be finished with the emerging within maybe 15
> >> minutes, and the client takes several hours already.
> >> 
> >> Is there something going wrong?  Is there a way to speed things up
> >> as much as I would expect from using distcc?
> >
> > You can try pump mode. Preprocessing is then done on the remote
> > server. Depending on your hardware, this could be faster.
> >
> > But read carefully the  manpages of pump and distcc before you use
> > it. There are some restrictions you should be aware of.
> 
> I followed the instructions on the wiki which suggest to have
> 'FEATURES="distcc distcc-pump"' in make.conf and give instructions how
> to set the CPUs.

I didn't read the wiki. It's some years ago that I used distcc and IIRC
there was no wiki available for it.
 
> > You can also try to optimize the number of concurrent compile
> > processes (-j). Watching the load counts of your client and
> > server(s) will help you to find out the best value.
> 
> Using -j doesn't really help.  The server is pretty much idling --- or
> you could say waiting for stuff to compile --- while the client
> progresses awfully slowly and isn't overloaded with compilation
> processes.  If the server would get more load, emerging could be much
> much faster.
>
> Can it be that the client is simply too slow compared to the server to
> give it any significant load?  (The client isn't exactly slow; it's
> slow compared to the server.)

I used a pentium 4 laptop as client and two phenom2 quadcore pc as 
server. I don't remember the settings that I used but I think it
was something about -j10 or so.

When I compiled large programs, the load count of the servers was
high most of the time and they were very busy with compiling. Only
at linking time they were waiting for new data.
Compilation time was much lower than without distcc.

However when I compiled small programs, the benefit of distcc was 
very small or even null. Also compilation time of OpenOffice was
very long, because of the -j1 setting in the ebuild.

I don't know the reason of your problem. Maybe you should try it
without pump mode to see if this makes a difference.

Have you used distccmon to see what happens while compiling? IIRC
it shows you exactly what's going on at each host (preprocessing,
compiling, waiting). Maybe this will bring some light into the 
whole thing.

And as Dale already said, network speed is very important.

--
Regards
wabe

Reply via email to