Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

osbuild: set the cache-max-size to 1G when checkpoints are defined #1217

Open
wants to merge 1 commit into
base: main
Choose a base branch
from

Conversation

achilleas-k
Copy link
Member

Adding --checkpoints to the osbuild call has no effect right now unless a previous run of osbuild set the max size already. Since we support passing checkpoint args to the osbuild call, let's also set the cache size to a baseline default value to have those checkpoints actually checkpoint.

Adding --checkpoints to the osbuild call has no effect right now unless
a previous run of osbuild set the max size already.
Since we support passing checkpoint args to the osbuild call, let's also
set the cache size to a baseline default value to have those checkpoints
actually checkpoint.
@achilleas-k achilleas-k requested a review from a team as a code owner February 14, 2025 11:56
Copy link
Member

@thozza thozza left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Makes sense 👍

Copy link
Member

@supakeen supakeen left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think we use 10 GiB in image-builder, should we do the same here? Should we also default to the same cache location?

@achilleas-k
Copy link
Member Author

achilleas-k commented Feb 14, 2025

I think we use 10 GiB in image-builder, should we do the same here?

How do we set it in osbuild? Afaict, we use this function (osbuild.RunOSBuild()) to call osbuild and it doesn't expose the cache size option.
I have a follow-up PR ready that exposes it, but I wanted to do it separately because it's going to change public function signatures and we can hold that one back until the change is also ready in osbuild-composer, ib-cli, and bib.

Should we also default to the same cache location?

The cache location is configurable (store) so callers can set whatever they want. Omitting it uses osbuild's default .store.

@achilleas-k
Copy link
Member Author

Should we also default to the same cache location?

The cache location is configurable (store) so callers can set whatever they want. Omitting it uses osbuild's default .store.

Correction: omitting it by setting it to "" puts everything in the working directory. We could probably make that an error.

@supakeen
Copy link
Member

I think we use 10 GiB in image-builder, should we do the same here?

How do we set it in osbuild? Afaict, we use this function (osbuild.RunOSBuild()) to call osbuild and it doesn't expose the cache size option. I have a follow-up PR ready that exposes it, but I wanted to do it separately because it's going to change public function signatures and we can hold that one back until the change is also ready in osbuild-composer, ib-cli, and bib.

My bad, I thought osbuild/bootc-image-builder#812 had landed (and it was 20 GiB instead).

Should we also default to the same cache location?

The cache location is configurable (store) so callers can set whatever they want. Omitting it uses osbuild's default .store.

Right, the question is do we want to make that default location a global cache (in the same place as where image-builder puts it), perhaps as a followup so the cache gives benefit by default even when building in different directories (at least for sources).

@achilleas-k
Copy link
Member Author

yeah, a system-wide cache would be much nicer

@supakeen
Copy link
Member

supakeen commented Feb 14, 2025

Ok, let's discuss system-wide separately; could we enlarge the cache to either 10, or 20 GiB max? The cache for a single minimal-raw with --checkpoint="*" is already 21 GiB. 1 GiB barely covers the sources (which are about 600 MiB).

E.g:

$ sudo rm -rf .osbuild
$ image-builder manifest minimal-raw | sudo osbuild --export=xz --output-directory=. --checkpoint="*" --cache-max-size=100GiB -
# ...
$ sudo du -hd2 .osbuild
4.0K    .osbuild/tmp
24K     .osbuild/objects/3e81c1481db492e6c8ff51f0a4735efd5912f9ad43beb5db86ac8fac0ea7c9bb
1.7G    .osbuild/objects/f10f160772af121bb426a804b860ed1f14e10ca49fa5975ae5d128009916cc88
1.7G    .osbuild/objects/8840af7f0863e2fe46ca70628da3889457ca12a9853bc722b6cae2df5003b3f5
1.7G    .osbuild/objects/d6b94bc34e74c7de17b9f1fc1176a4c939a1be4e7d922c4678e0723ba698778e
36K     .osbuild/objects/829c1a53ab1141a773b5b336a9233d83ff578328135713d5422ea8ffbd61d629
1.7G    .osbuild/objects/3d8c721279753bda0e2d4de38c9219b6b47107b89cf839b176e6e93d923d6c3b
3.5M    .osbuild/objects/1f3ba668738692de3ae2be7c8626daa5b956d94e9ffb08b6ffaed0a372ac5ac6
1.7G    .osbuild/objects/873bdfc5475ebca4b331e4769a3e6abd8ce804daa829beccc70ece323c627ae8
1.7G    .osbuild/objects/7585a5c02f6f7c48534254eb7ee939b5746882f539cb74c983deb11e075ba454
284K    .osbuild/objects/bcbc7442a14048cd767b9b8bb44e78df7a56ced4569b11a0d0865ca29a09e762
305M    .osbuild/objects/efda28e3de0fdb64140d421606185fff1a58b4cf6281f4483d999e0fabe9dcc2
1.7G    .osbuild/objects/9e1d3db48c4b6d55570ddab32525db63878de7c73526c039b0289adc6cb59d53
305M    .osbuild/objects/3ad9af1a7d692eaea77a1f40a02d53b08821df9d952c28383760b7652d067eca
1.2M    .osbuild/objects/76f6f4beea096394233d9b971dac4725aa97ffab617aa0999548dd7fec715149
892M    .osbuild/objects/9280be79010f5d0a5c3638eeb12117356fb31b72081fc304ac6c360495b705e1
64K     .osbuild/objects/8941bc598953a5e4f80492bd5c751db36618752ec1ca22e37cf9d0eb8a4b1e2a
1.7G    .osbuild/objects/6f66ace5c3046a5dc1c5a1cb2f05a9ea146b20a133a6635301395823c88d0325
1.7G    .osbuild/objects/81a13f4fae73335f0d86e33bd0b5ca0e2f25aafed30db6ec445fe72c7904f4e7
1.7G    .osbuild/objects/014b9e4e1cc3a49e53eaddb39882b04fcac8c51da44ee7567600d0be09190f25
1.7G    .osbuild/objects/c0174c70276feb2e644e781481e4aa17cb01beebd5eb52b1ba896284653c2b55
1.7G    .osbuild/objects/3ae5876f6315ca461af499d0e3d7b79ce2c52fc809ad0bf5efb2b1a7b89c31fe
21G     .osbuild/objects
573M    .osbuild/sources/org.osbuild.files
573M    .osbuild/sources
4.0K    .osbuild/stage
22G     .osbuild

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants