1 |
lee wrote: |
2 |
> <wabenbau@×××××.com> writes: |
3 |
> |
4 |
>> lee <lee@××××××××.de> wrote: |
5 |
>> |
6 |
>>> Hi, |
7 |
>>> |
8 |
>>> what's taking so long when emerging packages despite distcc is used? |
9 |
>>> |
10 |
>>> I have disallowed compiling on the local machine (which is the one |
11 |
>>> emerge is running on) through distcc settings because the local |
12 |
>>> machine is relatively slow. Yet I can see some gcc processes running |
13 |
>>> on the local machine, and emerging goes painfully slow. Using distcc |
14 |
>>> doesn't seem to make it any faster, though disabling local compiling |
15 |
>>> seems to help a bit. |
16 |
>>> |
17 |
>>> Some compilations are being run on the remote machine, so distcc does |
18 |
>>> work. The log file on the remote machine shows compilation times of a |
19 |
>>> few milliseconds up to about 1.5 seconds at most. The distcc server |
20 |
>>> would be finished with the emerging within maybe 15 minutes, and the |
21 |
>>> client takes several hours already. |
22 |
>>> |
23 |
>>> Is there something going wrong? Is there a way to speed things up as |
24 |
>>> much as I would expect from using distcc? |
25 |
>> You can try pump mode. Preprocessing is then done on the remote server. |
26 |
>> Depending on your hardware, this could be faster. |
27 |
>> |
28 |
>> But read carefully the manpages of pump and distcc before you use it. |
29 |
>> There are some restrictions you should be aware of. |
30 |
> I followed the instructions on the wiki which suggest to have |
31 |
> 'FEATURES="distcc distcc-pump"' in make.conf and give instructions how |
32 |
> to set the CPUs. |
33 |
> |
34 |
>> You can also try to optimize the number of concurrent compile processes |
35 |
>> (-j). Watching the load counts of your client and server(s) will help |
36 |
>> you to find out the best value. |
37 |
> Using -j doesn't really help. The server is pretty much idling --- or |
38 |
> you could say waiting for stuff to compile --- while the client |
39 |
> progresses awfully slowly and isn't overloaded with compilation |
40 |
> processes. If the server would get more load, emerging could be much |
41 |
> much faster. |
42 |
> |
43 |
> Can it be that the client is simply too slow compared to the server to |
44 |
> give it any significant load? (The client isn't exactly slow; it's slow |
45 |
> compared to the server.) |
46 |
> |
47 |
> |
48 |
|
49 |
|
50 |
Once a really long time ago I tried doing this sort of thing. What I |
51 |
found is that the network speed between the two systems was what was |
52 |
slowing it down. It just couldn't transfer the data back and forth fast |
53 |
enough. I had a network card that really didn't have any good drivers |
54 |
for it. Anyway, it may not be your problem but it may be worth looking |
55 |
at to be sure. Using iftop or some similar tool should tell you |
56 |
something. |
57 |
|
58 |
One way to test it, just find a really large tarball and copy it over. |
59 |
Even if it only takes a few seconds, it should be long enough to give |
60 |
you a idea if something network wise is getting in the way. |
61 |
|
62 |
Just throwing a idea out there. |
63 |
|
64 |
Dale |
65 |
|
66 |
:-) :-) |