Linux CFS Improvement Forthcoming To Help With Faster Spreading Of CPU Utilization
A rather simple improvement to the Linux CFS scheduler's load balancing code appears to have measurable benefits with helping to more quickly spread the task utilization across the system.
Linaro's Vincent Guittot spotted a rather simple but impactful optimization in the kernel's scheduler code. When running the CFS load balancing, it until now hasn't been checking that there are pending tasks to pull as otherwise the load balance will just fail and thus further delay the possible spreading of the system load.
With a simple check for verifying there are at least two tasks running on a CPU core when trying to pull utilization from it, Vincent discovered promising results. With the sysbench benchmark, when applying the patch he found the maximum time per request dropped by about half. The average result didn't change much (a fraction of a millisecond) but the average maximum for per-request performance dropped from 21ms to 10ms and worst case timings dropped from 41ms to 21ms.
The patch is on the kernel mailing list for now and hopefully will make it into Linux 5.7.
Linaro's Vincent Guittot spotted a rather simple but impactful optimization in the kernel's scheduler code. When running the CFS load balancing, it until now hasn't been checking that there are pending tasks to pull as otherwise the load balance will just fail and thus further delay the possible spreading of the system load.
With a simple check for verifying there are at least two tasks running on a CPU core when trying to pull utilization from it, Vincent discovered promising results. With the sysbench benchmark, when applying the patch he found the maximum time per request dropped by about half. The average result didn't change much (a fraction of a millisecond) but the average maximum for per-request performance dropped from 21ms to 10ms and worst case timings dropped from 41ms to 21ms.
The patch is on the kernel mailing list for now and hopefully will make it into Linux 5.7.
Add A Comment