Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Kubernetes pod cpu usage calculation method for HPA

Can someone explain how the cpu usage is calculated inside pods with multiple containers for use with an Horizontal Pod Autoscaler? Is it the mean value and how is this calculated?

For example: If we have 2 containers:

  • Container1 requests 0.5 cpu and uses 0 cpu
  • Container2 requests 1 cpu and uses 2 cpu

If we calculate both seperatly and take the mean: (0% + 200%)/2 = 100% usage?

If we take the sums and take the mean: 2/1.5 = 133% usage?

Or is my logic way off?

like image 609
Maarten V. Avatar asked Jan 09 '18 16:01

Maarten V.


1 Answers

As of kubernetes 1.9 HPA calculates pod cpu utilization as total cpu usage of all containers in pod divided by total request. So in your example the calculated usage would be 133%. I don't think that's specified in docs anywhere, but the relevant code is here: https://github.com/kubernetes/kubernetes/blob/v1.9.0/pkg/controller/podautoscaler/metrics/utilization.go#L49

However, I would consider this an implementation detail. As such it can easily change in future versions.

like image 178
Maciek Pytel Avatar answered Sep 17 '22 13:09

Maciek Pytel