The Linux kernel scheduler for large SMP and NUMA systems needs to address
conflicting requirements of system througput and application response
times. This paper presents a pooled multiqueue scheduler (PMQS) designed for
such high-end SMP and NUMA systems. PMQS is based on MQS, a multiqueue
scheduler that has previously been shown to significantly improve upon the
scalability of the current Linux 2.4 scheduler. Load imbalances introduced by
the pooling approach are reduced by a load balancing module. The paper presents
different kinds of load balancers and compares their efficacy.
The performance evaluation of PMQS and the load balancer is carried
out using application and microbenchmarks with mixed results. Pooling is shown
to have potential for further improving MQS' performance though more work needs
to be done on the load balancers.