suse-edge / edge-image-builder

Tool for creating and configuring a set of images to automate the deployment of Edge environments
Apache License 2.0
55 stars 28 forks source link

Cache RPMs between builds #502

Open agracey opened 3 months ago

agracey commented 3 months ago

Builds can take a while on dependency resolution and package download. This seems like it's network bound so caching the packages would likely provide a better experience when iterating on an image

jdob commented 3 months ago

For clarification, you mean RPMs specifically right? As compared to container images for k8s workloads.

agracey commented 3 months ago

Yes, RPMs

pbronneberg commented 3 months ago

Recognise the long build duration. For a project tasked to build Edge images using EIB, this results in rather high cycle teams when editing configuration. (> 20 minutes)

We observe that Resolving package dependencies... is consuming the beef of the build time (we pull in large packages from Nvidia RPM registries during this step). To assess whether this is CPU bound, we tested our CI on 2 different Amazon instances leading to the following results:

Timing results: instance-type m5a.large m5ad.xlarge
vCPU 2 4
Memory (GB) 8 16
EIB time 21:44 17:43
time savings - -4:01

Based on this, CPU does not appear the largest contributing factor and we also suspect the resolving to be network bound.

Hope this helps