|
List Info
Thread: need help tuning distcc
|
|
| need help tuning distcc |

|
2006-09-28 18:05:14 |
Hi, all,
I run Gentoo on a very old 150 mhz pentium laptop. As you
can imagine,
it's painful to update Gentoo packages on it. I've been
attempting
to use distcc and crossdev so that the more more modern i686
machines on my
local network can do most of the compiling for this i586
box. However,
I haven't been very successful in offloading its
compilations to the faster
boxes: distcc still seems to want to do most of the
compiling on the
slow box
and only occasionally sends a compilation to one of the
faster boxes.
My reading of the docs suggests that the /etc/distcc/hosts
file controls how
the work is distributed and MAKEOPTS in /etc/host controls
how much
parallelism
is attempted. My setup on the slow box is
MAKEOPTS="-j5" with
/etc/distcc/hosts
containing a line like
fast_box_1/2 fast_box_2/2 localhost/1
My intention is that make will attempt 5 way parallelism,
and that
distcc will
parcel out the 1st two tasks to fast_box_1, the next 2 tasks
to fast_box_2,
and the last task to localhost, the slow box.
But, as I watch compilations progress on all 3 machines, I
see most of
the work
being done, on the slow box - typically 2 or 3 compilations
simultaneously, and
only an occasional compilation on the faster machines.
How do I convince distcc on the slow machine to send more
work - all of
it if
possible - to the fast machines?
Thanks for your help.
John Blinka
--
gentoo-user gentoo.org mailing list
|
|
| need help tuning distcc |

|
2006-09-28 21:16:14 |
Hi,
Is FEATURES properly set in /etc/make.conf.
I think you should use distcc-config --set-hosts to set
the compiling farm
hosts and localhost is not necessary.
Did you check if /etc/conf.d/distcc is correctly
configured on all the boxes
like on which interface they listen on and from which hosts
they accept connections.
Last I believe you need to specify the port in the
--set-hosts line:
distcc-config --set-hosts "fast_host_1:3632/3
fast_host_2:3632/2"
In this case 3 jobs get sent to fast_host_1 and 2 to
fast_host_2.
Catalin
John Blinka wrote:
> Hi, all,
>
> I run Gentoo on a very old 150 mhz pentium laptop. As
you can imagine,
> it's painful to update Gentoo packages on it. I've
been attempting
> to use distcc and crossdev so that the more more modern
i686 machines on my
> local network can do most of the compiling for this
i586 box. However,
> I haven't been very successful in offloading its
compilations to the faster
> boxes: distcc still seems to want to do most of the
compiling on the
> slow box
> and only occasionally sends a compilation to one of the
faster boxes.
>
> My reading of the docs suggests that the
/etc/distcc/hosts file controls how
> the work is distributed and MAKEOPTS in /etc/host
controls how much
> parallelism
> is attempted. My setup on the slow box is
MAKEOPTS="-j5" with
> /etc/distcc/hosts
> containing a line like
>
> fast_box_1/2 fast_box_2/2 localhost/1
>
> My intention is that make will attempt 5 way
parallelism, and that
> distcc will
> parcel out the 1st two tasks to fast_box_1, the next 2
tasks to fast_box_2,
> and the last task to localhost, the slow box.
>
> But, as I watch compilations progress on all 3
machines, I see most of
> the work
> being done, on the slow box - typically 2 or 3
compilations
> simultaneously, and
> only an occasional compilation on the faster machines.
>
> How do I convince distcc on the slow machine to send
more work - all of
> it if
> possible - to the fast machines?
>
> Thanks for your help.
>
> John Blinka
--
gentoo-user gentoo.org mailing list
|
|
| need help tuning distcc |

|
2006-09-29 00:00:05 |
On Thu, 2006-09-28 at 14:05 -0400, John Blinka wrote:
> Hi, all,
>
> I run Gentoo on a very old 150 mhz pentium laptop. As
you can imagine,
> it's painful to update Gentoo packages on it. I've
been attempting
> to use distcc and crossdev so that the more more modern
i686 machines on my
> local network can do most of the compiling for this
i586 box. However,
> I haven't been very successful in offloading its
compilations to the faster
> boxes:
[snip]
> fast_box_1/2 fast_box_2/2 localhost/1
looks good to me. just remember:
1. not every ebuild can use parallel compilation - some have
it disabled
because it causes compiler errors - they override MAKEOPTS
to -j1
2. I think an ebuild may be able to over-ride the distcc
setting (not
sure) which would make all 5 jobs run locally - again
because of
problems when it's enabled
3. ./configure scripts can only happen locally - sometimes
there are
compiles or at least CPU intensive tasks going on here (esp
if you have
a slow cpu)
so unfortunately, distcc doesn't speed _every_ compile up by
drastic
amounts, but when it does - it does!
HTH,
--
Iain Buchanan <iaindb at netspace dot net dot au>
Running Windows on a Pentium is like having a brand new
Porsche but only
be able to drive backwards with the handbrake on.
(Unknown source)
--
gentoo-user gentoo.org mailing list
|
|
| need help tuning distcc |

|
2006-09-29 00:42:31 |
John Blinka wrote:
> Hi, all,
>
> I run Gentoo on a very old 150 mhz pentium laptop. As
you can imagine,
> it's painful to update Gentoo packages on it. I've
been attempting
> to use distcc and crossdev so that the more more modern
i686 machines on my
> local network can do most of the compiling for this
i586 box. However,
> I haven't been very successful in offloading its
compilations to the faster
> boxes: distcc still seems to want to do most of the
compiling on the
> slow box
> and only occasionally sends a compilation to one of the
faster boxes.
>
> My reading of the docs suggests that the
/etc/distcc/hosts file controls how
> the work is distributed and MAKEOPTS in /etc/host
controls how much
> parallelism
> is attempted. My setup on the slow box is
MAKEOPTS="-j5" with
> /etc/distcc/hosts
> containing a line like
>
> fast_box_1/2 fast_box_2/2 localhost/1
>
> My intention is that make will attempt 5 way
parallelism, and that
> distcc will
> parcel out the 1st two tasks to fast_box_1, the next 2
tasks to fast_box_2,
> and the last task to localhost, the slow box.
>
> But, as I watch compilations progress on all 3
machines, I see most of
> the work
> being done, on the slow box - typically 2 or 3
compilations
> simultaneously, and
> only an occasional compilation on the faster machines.
>
> How do I convince distcc on the slow machine to send
more work - all of
> it if
> possible - to the fast machines?
>
> Thanks for your help.
>
> John Blinka
>
I'll try to put it all together:
1) Edit /etc/distcc/hosts on all machines and insert the
values you
want. Your config seems correct
3) FEATURES="distcc"
4) put MAKE_OPTS="jx" on each machine, where x is
the number of jobs
distccd should accept for that machine.
5) Check /etc/conf.s/distcc on each machine -
"LISTEN" and "ALLOW" are
vital, and there is again the flag "-j" set it
equal to the j from
MAKE_OPTS. example:
DISTCCD_EXEC="/usr/bin/distccd"
DISTCCD_PIDFILE="/var/run/distccd/distccd.pid"
DISTCCD_OPTS="$ --port 3632"
DISTCCD_OPTS="$ --log-level
critical"
DISTCCD_OPTS="$ --allow 10.0.1.0/24 -j
6"
DISTCCD_OPTS="$ --listen 10.0.1.10"
DISTCCD_NICE="19"
Last: restart the daemon at each machine with
"/etc/init.d/distccd
restart" and you should be fine.
To checkout if the number of listening distcc daemons is
correct: "ps
ufax | tr -s ' ' | grep distcc"
--
Best regards,
Daniel
--
gentoo-user gentoo.org mailing list
|
|
[1-4]
|
|