Hi Manfred,

I'll expand a bit on the constraints / arm workers thing, it might be interesting to other packagers, too ;-)

Am 12.02.25 um 19:41 schrieb Manfred Hollstein:
Hi Stefan,

On Wed, 12 Feb 2025, 18:30:36 +0100, Stefan Seyfried wrote:

One thing to consider are the _constraints: are the 6GB RAM really necessary
or just "nice to have"? requiring more than 4G (probably more than 3.5G
actually) leaves only one ARM worker being able to build it, so if it is
possible to tone that down, that would be useful.

I just checked and, no, it's definitely not necessary! I inherited that
file from HP's SR, so, it's not required and I'll remove it now.

That's nice.

To explain the "issue", the pmbs arm workers consist of 3 raspberry pi 4's beside my desk and an older(?) rhel machine where I don't know who is operating it (worker "obs-kamionche").

The raspberries are:

1x raspberry pi400 (4GB RAM), this was the only available option when I started providing the ARM workers, back then the raspberry pi 4 was unobtainium.
2x raspberry pi 4b (8GB RAM each).

These are configured to run
2x2GB, 2x3core (raspberry pi400, workers "seife-rpi400)
2x4GB, 2x3core (raspberry pi 4B, workers "seife-raspi3")
1x8GB, 1x4core (raspberry pi 4B, worker "seife-rpi4")

(don't ask about the naming... ;-))

The smaller workers, even the "only 2GB" raspberry pi400 ones, are useful because many packages are small and do not need huge resources to build, so the more packages to be built in parallel, the better. That's also the reason I "overcommitted" the cores on the dual-worker machines: a lot of the build is single-threaded (build-VM setup, most configure scripts, after-build rpmlint etc) so it is OK when the other active worker VM can use the remaining three cores. Actually the CPU usage of the 2x3core machines is much higher than hte 1x4core machine, as a huge part of the build is spent in "single cpu mode".

I'm not sure how big the obs-kamionche worker is (could not find its memory size in "osc workerinfo"), but it is not possible to build armv7l pacakges on it (I had to tweak the prjconf of Multimedia and Essentials to avoid armv7l being scheduled on it and always fail) and it obviously refuses to build packages with big constraints, so I guess it also does not have more than 4GB of RAM.

As you might guess from my long ramblings, I did spend quite some time trying to optimize the setup and usually I keep an eye on the PMBS monitor page during the day. When I notice that the two "smaller setup" raspis are idling and there are multiple packages are in "waiting" state, then I know that one of the "big" packages is waiting for the 1x4core worker. While I sometimes just switch the second "seife-raspi3" worker into 1x8GB mode, the best thing is if the packages only request as much memory as necessary, so that this all sorts itself out on its own, and uses the available resources much better.

:-)

(and yes, I'm also shutting down the workers when they are idle and nothing is waiting for build and automatically start them if there is something in the queue again, unfortunately this is not yet fully reliable so I need to manually intervene every now and then)

Have fun,

        seife :-)

--
Stefan Seyfried

"For a successful technology, reality must take precedence over
 public relations, for nature cannot be fooled." -- Richard Feynman

_______________________________________________
Packman mailing list
[email protected]
https://lists.links2linux.de/cgi-bin/mailman/listinfo/packman

Antwort per Email an