Idle scheduling support in the Linux Kernel
Session information has not yet been published for this event.
One Line Summary
This talk describes how Google uses CFS to provide differentiated CPU QoS, discusses the strengths and shortcomings of idle scheduling support in the Linux kernel, and presents solutions that improve utilization without impacting isolation.
Most of the jobs we run at Google fall into one of two priority bands: high priority workloads that require to be scheduled as quickly as possible, and low priority workloads that soak up the remaining (idle) cpu cycles on a machine. The challenge we face in providing differentiated CPU QoS is to maximize machine utilization without compromising on the isolation between these two priority levels.
In this talk we present how we used CFS and group scheduling to implement CPU QoS described above. We describe how we used CFS to provide strict scheduling priority in addition to fairness. We discuss some of the strengths and shortcomings of the Linux kernel’s idle scheduling support with the help of some real world case studies, and discuss tradeoffs between poor machine utilization and providing isolation.
As part of the talk, we will present a solution that achieves differentiated QoS while maximizing machine utilization. We discuss our modifications to the scheduler and load balancer, present data for how this improves utilization and present the pros and cons of some alternative solutions that we had considered (and also open the floor to discussion).
scheduler, cpu qos, fair group scheduling, idle scheduling
Nikhil Rao is a kernel developer working with the production kernel team at Google. His primary interest is the process scheduler, with a focus on tuning the kernel to improve its performance. In the past, he has worked on network booting for the Etherboot project.