[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