1 |
Raffaele Belardi wrote: |
2 |
> Hi, |
3 |
> |
4 |
> rebuilding system and world with gcc-7.2.0 on a 6-core AMD CPU I have the impression that |
5 |
> most of the ebuilds limit parallel builds to 1, 2 or 3 threads. I'm aware it is only an |
6 |
> impression, I did not spend the night monitoring the process, but nevertheless every time |
7 |
> I checked the load was very low. |
8 |
> |
9 |
> Does anyone have real-world statistics of CPU usage based on gentoo world build? |
10 |
|
11 |
I graphed the number of parallel ebuilds while doing an 'emerge -e' world on a 4-core CPU, |
12 |
the graph is attached. There is an initial peak of ebuilds but I assume it is fake data |
13 |
due to prints being delayed. Then there is a long interval during which there are few (~2) |
14 |
ebuilds running. This may be due to lack of data (~700Mb still had to be downloaded when I |
15 |
started the emerge) or due to dependencies. Then, after ~500 merged packages, finally the |
16 |
number of parallel ebuilds rises to something very close to the requested 5. |
17 |
|
18 |
Note: the graph represents the number of parallel ebuilds in time, not the number of |
19 |
parallel jobs. The latter would be more interesting but requires a lot more effort. |
20 |
|
21 |
Note also in the log near the seamonkey build that the load rises to 15 jobs; I suppose |
22 |
seamonkey and other two potentially massively parallel jobs started with low parallelism, |
23 |
fooling emerge into starting all three of them, but then each one spawned the full -j5 |
24 |
jobs requested by MAKEOPTS. There's little emerge can do in these cases to maintain the |
25 |
load-average. |
26 |
|
27 |
All of this just to convince myself that yes, it is worth it! |
28 |
|
29 |
raffaele |
30 |
|
31 |
Method: |
32 |
The relevant part of the command line: |
33 |
# "MAKEOPTS=-j5 EMERGE_DEFAULT_OPTS=--jobs 3 --load-average 5" emerge -e world |
34 |
on a 4 core CPU. |
35 |
In the log I substituted a +1 for every 'Emerging' and -1 for every 'Installing', removed |
36 |
the rest of the line, summed and graphed the result. |