[packman] Status of HandBrake in PMBS
Stefan Seyfried
stefan.seyfried at googlemail.com
Wed Feb 12 20:21:01 CET 2025
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
More information about the Packman
mailing list