1 |
On Nov 28, 2011 3:21 AM, "Michael Mol" <mikemol@×××××.com> wrote: |
2 |
> |
3 |
> On Sun, Nov 27, 2011 at 12:56 PM, Pandu Poluan <pandu@××××××.info> wrote: |
4 |
> > On Nov 27, 2011 5:12 PM, "Michael Mol" <mikemol@×××××.com> wrote: |
5 |
> |
6 |
> [snip] |
7 |
> |
8 |
> > |
9 |
> > Here's my experience: |
10 |
> > |
11 |
> > I always experience emerge failures on my Gentoo VMs if I use |
12 |
MAKEOPTS=-j>3. |
13 |
> > Not all packages, but many. Including, IIRC, glibc and gcc. |
14 |
> |
15 |
> In my barebones 177-package state, I didn't get any build failures |
16 |
> from parallel building, either via emerge -j or make -j. I did get one |
17 |
> failure when I went to install X that worked fine on the second |
18 |
> attempt. |
19 |
> |
20 |
|
21 |
And in my barebones system (172 packages), there are several packages that |
22 |
reliably fail, even when emerged on their own *sigh* |
23 |
|
24 |
> > This happens even if I make sure that there's just one emerge job being |
25 |
> > done. And this happens even if I allocate more vCPUs than -j, on VMware |
26 |
and |
27 |
> > XenServer alike. |
28 |
> |
29 |
> FWIW, I've been running with MAKEOPTS=-j10 on my Phenom 9650 for over |
30 |
> a year. It's very rare that something breaks due to the parallel |
31 |
> build. I think it's happened perhaps three times, and each time was |
32 |
> resolvable with a retry. YMMV, of course; race conditions are finicky. |
33 |
> |
34 |
|
35 |
I have a hunch that the hypervisor had some effects. Most likely, another |
36 |
VM in the same host has a high enough load that necessitates the Gentoo VM |
37 |
to be shifted to another (physical) core, and this messes up the timing. |
38 |
|
39 |
MAKEOPTS=-j3 always succeeds, though. So I'm disinclined to delve deeper |
40 |
into the issue. |
41 |
|
42 |
> > I don't know where the 'blame' lies, but I've found myself |
43 |
standardizing on |
44 |
> > MAKEOPTS=-j3, and PORTAGE_DEFAULT_OPTS="--jobs |
45 |
> > --load-average=<1.6*num_of_vCPU>" |
46 |
> > |
47 |
> > (Yes, no explicit number of jobs. The newer portages are smart enough to |
48 |
> > keep starting new jobs until the load number is reached) |
49 |
> |
50 |
> Sweet; I didn't know about Portage's --load-average; I'll definitely |
51 |
> switch to that instead of -j. Load-driven make plus load-driven |
52 |
> portage should work beautifully on my system. |
53 |
> |
54 |
> I'll steal your 1.6 factor, and give: |
55 |
> MAKEOPTS=-j <2*N> -l <1.6*N) |
56 |
> PORTAGE_DEFAULT_OPTS="--jobs --load-average<1.6*N>" |
57 |
> a try. |
58 |
> |
59 |
|
60 |
Make sure that make supports non-integer values for -l, though. |
61 |
|
62 |
> How does that interact with distcc, by the way? I've got two of these |
63 |
> octo-core Xeon boxes, and I've still got my Phenom 9650--distcc on my |
64 |
> home network should become very, very nice. And this box is consuming |
65 |
> 255W at the wall with monitor off, 326W with monitor on. That's not |
66 |
> bad. Though perhaps I should move to an apartment where heat isn't |
67 |
> free... |
68 |
> |
69 |
|
70 |
Well, I don't use distcc, so I can't speculate. But with plain single |
71 |
system compilation, my settings have been serving me real well :-) |
72 |
|
73 |
Rgds, |