Hello Todd,
Sorry for the delayed response. And thank you for responding to my
email.
On Wed, 2023-03-01 at 08:52 -0500, Todd Goodman wrote:
> We have all the Ubuntu repos mirrored, with snapshots and those
> snapshots published.
> Updating mirrors for the first time can take over three days, but a
> lot of that is due to the company's poor network setup.
> 429 snapshots doesn't sound like a lot compared to what we have and
> isn't generally an issue (as I believe it's just a database update).
> We publish from snapshots and it doesn't take anywhere like 24-36
> hours. I don't remember how long the last publication took, but it
> was certainly less than an hour.
> Are you publishing from snapshots?
> Publishing creates a lot of hard links, so, if it were ,e, I'd look
> into my filesystem performance
> Todd
Thank you for clarifying on that.
Ours is a different setup. We make use of the Open Build Service aka
OBS software for build requirements. We've plugged in the aptly tool as
the publisher of choice. Previously, we were making use of reprepro.
After further investigation, it was the way OBS + Aptly integration is
in our setup, that is causing the insane performance penalty.
Say, you have a replica of the main repository from Debian. You'll end
up with the same on OBS, with a single repository with thousands on
packages. For this conversation, lets say that it is 5000 (source)
packages. They'll reflect as 5000 packages in an OBS repository.
When OBS does a publishing of the repository, the aptly publisher is
invoked, which in turn takes each file as an argument to `aptly add`
So that ends up making it at least 5000 src pkgs * 3 architecutres
(arm32, arm64 and x86_64). Now increase that with each of those source
package's binary packages. Let's take an average of 3 binary package
outputs + 1 source package.
Makes it a total to 60,000 `aptly add` operations. That is where the
bottleneck was/is.
I have now validated that it is not an aplty performance problem
because the usual `snaptshot`, `publish` operations are completing in a
reasonable amount of time.