[distcc] Little or no compilation at localhost

Simon Mikkelsen simon at gramjuhl.dk
Fri Jun 10 09:49:55 GMT 2005


Hi Jean

> Oh, also: what kind of network setup do you have?  If the connection
> is very slow you might see this problem of jobs getting stranded on
> 10.0.0.3 and localhost needing to wait around for them.

Actually 10.0.0.3 is located in a dmz, so it may take about 1 second for
connections to
get past the firewall - but when a connection is opened it runs 100 MBit/s.


> I've installed distcc on two identical computers, each with two
processors
> with hyperthreading (localhost and 10.0.0.3).
>
> Monitoring the computers with top, I can see that 10.0.0.3 does all (or
> most) of the compiling, while the pattern of localhost is like compiling
> with make -j1.

> This is not the standard behavior. Which version of distcc are you using?
> Did you compile it yourself? Any additional patch applied?

I'm using v. 2.18.3, I compiled and installed it myself by collowing the
"30-second instructions" in distcc.samba.org. I have not applied any
patches.

> Try using distccmon-gnome to monitor the job distribution, it may be more
> helpful than top. Also watch the logs for errors. If distribution to
> localhost fails, it should generate an error message at some point.

The logs yields no result. I ran distccmon-text and the following is a
typical
result (that is this shows the most processes that ran at any time).

 27837  Blocked
[0]
 27840  Blocked
[0]
 27843  Blocked
[0]
 27846  Blocked
[0]
 27850  Blocked
[0]
 27853  Blocked
[0]
 27856  Blocked
[0]
 27868  Blocked
[0]
 27914  Blocked
[0]
 27834  Compile     file1.cpp
10.0.0.3[0]
 27970  Compile     file2.cpp
10.0.0.3[1]
 27976  Compile     file3.cpp
10.0.0.3[2]
 27950  Compile     file4.cpp
10.0.0.3[3]
 27812  Compile     file5.cpp
localhost[0]
 27984  Compile     file6.cpp
localhost[1]

> Setting DISTCC_VERBOSE=1 for the client may help.

It produced more than 10000 lines of output, but I found the following to
support the
output above:

distcc[9972] (dcc_note_state) note state 1, file "(NULL)", host "(NULL)"
distcc[10007] (dcc_note_state) note state 1, file "(NULL)", host "(NULL)"
distcc[10071] (dcc_lock_pause) nothing available, sleeping 1s...
distcc[9972] (dcc_lock_pause) nothing available, sleeping 1s...
distcc[10007] (dcc_lock_pause) nothing available, sleeping 1s...
distcc[9978] (dcc_lock_host) /home/simon/.distcc/lock/cpu_localhost_0 is
busy
distcc[9978] (dcc_lock_host)
/home/simon/.distcc/lock/cpu_tcp_10.163.0.3_3632_0 is busy
distcc[9978] (dcc_lock_host) /home/simon/.distcc/lock/cpu_localhost_1 is
busy
distcc[9978] (dcc_lock_host)
/home/simon/.distcc/lock/cpu_tcp_10.163.0.3_3632_1 is busy
distcc[9978] (dcc_lock_host)
/home/simon/.distcc/lock/cpu_tcp_10.163.0.3_3632_2 is busy
distcc[9978] (dcc_lock_host)
/home/simon/.distcc/lock/cpu_tcp_10.163.0.3_3632_3 is busy
distcc[9978] (dcc_note_state) note state 1, file "(NULL)", host "(NULL)"
distcc[10027] (dcc_lock_host) /home/simon/.distcc/lock/cpu_localhost_0 is
busy
distcc[9978] (dcc_lock_pause) nothing available, sleeping 1s...
distcc[10027] (dcc_lock_host)
/home/simon/.distcc/lock/cpu_tcp_10.163.0.3_3632_0 is busy
distcc[10027] (dcc_lock_host) /home/simon/.distcc/lock/cpu_localhost_1 is
busy

I reads it as localhost does not want to accept more than two compiles at
any time
(this time I ran without any /n limitations in the hosts file).


> Which options did you run distccd with on both machines? Didn't you
> forget to run distccd on localhost?

I ran both with distccd --daemon --allow
On 10.0.0.3 with "10.0.0.0/24" as allow list and localhost with "127.0.0.1
localhost" as allow list (both with and without the quotest).

--
Best regards,
Simon Mikkelsen




More information about the distcc mailing list