Improving Kubernetes Scheduler Performance
1–10 of 10 posts
Re: Improving Kubernetes Scheduler Performance
#2Re: Improving Kubernetes Scheduler Performance
#3So, they optimized "Round" which took 18 seconds, and by that reduced total cpu time from 53 to 23 seconds. Did I get that right?
Re: Improving Kubernetes Scheduler Performance
#4So, they optimized "Round" which took 18 seconds, and by that reduced total cpu time from 53 to 23 seconds. Did I get that right?
First, hit a rate limiter, removing it partially solved the performance issue at low scale.
Second, there was a slightly expensive "initialization operation" that should be only done once, made sure it only happened once.
Finally, found the expensive round math operation with micro-benchmarks and improving the math operation resulted in doubled throughput.
Re: Improving Kubernetes Scheduler Performance
#5Re: Improving Kubernetes Scheduler Performance
#6So, they optimized "Round" which took 18 seconds, and by that reduced total cpu time from 53 to 23 seconds. Did I get that right?
Re: Improving Kubernetes Scheduler Performance
#7Am I missing something, or are they really boasting that they are able to schedule tens of jobs per second? ("Average pod throughput was 16.30 pods/sec") That seems very low...
Re: Improving Kubernetes Scheduler Performance
#8Am I missing something, or are they really boasting that they are able to schedule tens of jobs per second? ("Average pod throughput was 16.30 pods/sec") That seems very low...
Re: Improving Kubernetes Scheduler Performance
#9So, they optimized "Round" which took 18 seconds, and by that reduced total cpu time from 53 to 23 seconds. Did I get that right?
> they optimized "Round" which took 18 seconds
This is CPU profile. The overall sampled time is 79 seconds. The Round() method took 18 seconds. This has no direct indication to scheduling latency.
> by that reduced total cpu time from 53 to 23 seconds
This is about scheduling latency. In this experiment, we schedule 1000 pods on 1000 nodes and see how much time it took to schedule a pod, aka scheduling latency. Before the optimization, the latency is 53 seconds; after, 23 seconds. Of course, this is just one of the steps we kept optimizing.
Re: Improving Kubernetes Scheduler Performance
#10So, they optimized "Round" which took 18 seconds, and by that reduced total cpu time from 53 to 23 seconds. Did I get that right?
They also removed two rate-limiters that someone had (presumably intentionally) put into the code. You always have to wonder when you see "protective code" like that - why was it added in the first place? Was it premature optimization? A guess? Often if a weak component is strengthened, you end up with "forgotten" code like this and it's always an effort to find and remove it.
By doing this, we can have more insights of system performance and find out which part is too "weak".
There is no reason that we couldn't increase the rate limiter if we keep improving the system in overall.