-
Notifications
You must be signed in to change notification settings - Fork 40k
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
kubelet should cache image history #25057
Comments
From http://perf-dash.k8s.io/, @yujuhong and I observed that the runtime cpu usage increased a lot (0.35 cores -> 0.50 cores) after #25784 got merged. The reason is that we have more images prepulled on each node, and the image history operation consumes much more resources. From docker log, we could see every 10 seconds, there will be a bunch of image history inspection:
After #23595 got merged, we've already observed the cpu usage increasing (0.30 cores -> 0.35 cores) (see #23595 (comment)). It means that this has eaten 0.20 cores with 38 images on the node and will consume even more if there are more images on the node. This is a significant performance regression, we should:
@yujuhong @vishh @timstclair @dchen1107 I think we should mark higher priority and finish this in 1.3. WDYT? |
This almost doubles docker's cpu usage in some cases, as shown in the dashboard. |
Automatic merge from submit-queue Kubelet: Cache image history to eliminate the performance regression Fix #25057. The image history operation takes almost 50% of cpu usage in kubelet performance test. We should cache image history instead of getting it from runtime everytime. This PR cached image history in imageStatsProvider and added unit test. @yujuhong @vishh /cc @kubernetes/sig-node Mark v1.3 because this is a relatively significant performance regression. [![Analytics](https://kubernetes-site.appspot.com/UA-36037335-10/GitHub/.github/PULL_REQUEST_TEMPLATE.md?pixel)]()
ref: #23595 (comment)
kubelet list images and get image history from each container runtime periodically. We should cache the history for the images, and only query the runtime when necessary (new images).
The text was updated successfully, but these errors were encountered: