-
-
Notifications
You must be signed in to change notification settings - Fork 866
atc: Consider image volumes in volume-locality strategy #8057
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
atc: Consider image volumes in volume-locality strategy #8057
Conversation
Often the largest volume that may need streaming is the image that the container executes in. By considering this volume too, this may allow for slightly better placement/reduced streaming for some builds (in particular builds with no inputs or caches will now prefer to be on the same worker as their image volume rather than a random one) Signed-off-by: Andy Paine <andy.paine@engineerbetter.com>
I think this PR should only be merged once #8070 is fixed. Otherwise it may end up that all containers go to the same worker and image gets no chance to be warmed up on other workers. |
@andy-paine Can you please rebase this PR? Because it doesn't contain change of #8061 but Github seems not detecting that. |
return nil | ||
} | ||
|
||
err := updateCountsForArtifact(spec.ImageSpec.ImageArtifact, "/") |
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.
Usually image is much bigger than other artifacts, can we give image 5 counts?
That way will especially benefit those use case where some job uses huge task images, but the job doesn't run frequently. Current image-get runs on a worker, task runs on the other worker, image streaming take longer time than directly pulling image from registry, because volume streaming involves tar->gzip->ungzip->untar.
… added weight See concourse#8057 Often the largest volume that may need streaming is the image that the container executes in. By considering this volume too, this may allow for slightly better placement/reduced streaming for some builds (in particular builds with no inputs or caches will now prefer to be on the same worker as their image volume rather than a random one) Signed-off-by: Mathias Bogaert <mathias.bogaert@gmail.com>
Rebase of concourse#8057 Often the largest volume that may need streaming is the image that the container executes in. By considering this volume too, this may allow for slightly better placement/reduced streaming for some builds (in particular builds with no inputs or caches will now prefer to be on the same worker as their image volume rather than a random one) Signed-off-by: Mathias Bogaert <mathias.bogaert@gmail.com> Co-Authored-by: Andy Paine <andy.paine@engineerbetter.com>
Superseded by #9188 |
Rebase of concourse#8057 Often the largest volume that may need streaming is the image that the container executes in. By considering this volume too, this may allow for slightly better placement/reduced streaming for some builds (in particular builds with no inputs or caches will now prefer to be on the same worker as their image volume rather than a random one) Signed-off-by: Mathias Bogaert <mathias.bogaert@gmail.com> Co-Authored-by: Andy Paine <andy.paine@engineerbetter.com>
Changes proposed by this PR
Often the largest volume that may need streaming is the image that the
container executes in. By considering this volume too, this may allow
for slightly better placement/reduced streaming for some builds (in
particular builds with no inputs or caches will now prefer to be on the
same worker as their image volume rather than a random one)
I think this should also go some of the way to resolving issues like #6218 as volume-locality should do a better job of using the same worker