What is the frequency of the GKE VerticalPodAutoscaler's updates?

I’ve been testing the GKE VerticalPodAutoscaler (VPA) and so far have found it to work roughly as expected. However, one thing is still unclear to me: how often does the VPA refresh its recommendations, and potentially recreate pods (when in Auto mode)? E.g. if I create the VPA now and it recommends 100 mCPU, it will recreate the pods with that request. But let’s say at night, my pod’s CPU utilization dips to 10 mCPU. How long will it take for the VPA to refresh its recommendation and recreate the pod(s)?

If VPA sets your pod to 100m CPU now, and then at night the usage drops to 10m CPU:

  • It will take several hours (or longer) of consistently low usage before the VPA recommendation decays down enough to trigger a restart.

  • And only if the difference is substantial enough (e.g. less than 20 %) from the current requests.

  • Then, VPA may delete and recreate the pod with the lower CPU requests.

1 Like

Thanks; that seems to match what I was seeing. After some testing and reading, it seems like VPA isn’t a great solution for intra-day scaling; I’m going to go back to leaning on HPA for that. VPA seems like a good solution for automating resource requests in a cluster with mixed pods (or several pods running on the same node).

1 Like