-
Notifications
You must be signed in to change notification settings - Fork 205
Add configurable concurrent layer downloads #311
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
Conversation
Can you provide some details on the images you tried and actual time deltas? |
@dcantah I haven't tested many images but here's a real world example with more modest speedups: Image: nvcr.io/nvidia/cuda:12.6.2-base-ubuntu24.04
Time Savings:
System info: Network info:
|
Sorry I overlooked this before but the default was set at 8 which is pretty reasonable for my current connection over VPN (se below).
But there may be cases where users have slower connection and need lower concurrency or faster connection and can handle higher concurrency values. Also helps to align with Docker which sets a default of 3. |
Can you run |
cc @adityaramani, I'd like your eyes on this. This seems decent to support, it's a nice little toggle. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Mostly a nit: But should we keep the default as 8? Same as it used to be before?
@adityaramani Was the 8 chosen originally based on some heuristic we had? Don't have the history |
Oop, @sbhavani didn't notice this but we require signed commits (gpg, ssh etc.). Can you sign with one of those methods and repush? I'd just squash down to one commit and sign that. |
c2f0bef
to
49d20f3
Compare
@sbhavani It seems the squashed commit still isn't signed :( I don't mean a "signed off by" line if it wasn't clear, but an actual signature via ssh/gpg etc. |
Add `maxConcurrentDownloads` parameter to `ImageStore.pull()` to allow callers to control download concurrency. Previously, the concurrency was hardcoded to 8 concurrent downloads. This change makes it configurable with a default of 3 to better respect network constraints and registry rate limits. Changes: - Add maxConcurrentDownloads parameter to ImageStore.pull() (default: 3) - Add maxConcurrentDownloads parameter to ImportOperation - Update fetchAll() to use configurable concurrency Signed-off-by: Santosh Bhavani <[email protected]>
49d20f3
to
1a0c85b
Compare
Adds
maxConcurrentDownloads
parameter toImageStore.pull()
.Performance improvement: ~1.2-1.3x faster pulls for multi-layer images with higher concurrency.