In a virtual environment CPU scheduling is extremely important. You very likely will have more vCPUs than pCores, so the hypervisor has to play some “tricks” to fairly schedule VMs among the finite hardware resources. With each version of vSphere VMware has tuned and optimized CPU scheduler performance.
VMware design goals for CPU scheduling are fairness, throughput, responsiveness and scalability. So what has VMware done under the covers in vSphere 5.1 to be even more efficient? Glad you asked! A few days ago VMware released a brand new whitepaper titled The CPU Scheduler in VMware vSphere 5.1. In it, you get to read about:
- Removing zombies
- Proportional shared-based algorithms
- Relaxed co-scheduling
- Load balancing
- Hyper-threading Policy
- NUMA Scheduling Policy
- Wide Virtual Machines
- vNUMA Best Practices
- Scheduler experiments and resulting data
In conclusion the whitepaper states:
The ESXi CPU scheduler achieves fair distribution of compute resources among many virtual machines without compromising system throughput and responsiveness. Relaxed co-scheduling is a salient feature that enables both correct and efficient execution of guest instructions with low overhead. The ESXi CPU scheduler is highly scalable and supports very big systems and wide virtual machine.
vSphere 5.1 optimizes the load-balancing algorithm introduced in 5.0. It results in noticeable reductions in CPU scheduling overhead. A policy change on hyper-threaded systems enables out-of-the-box performance of 5.1 exceeding that of a tuned version of vSphere 4.1. No special tuning is required to achieve the best performance for most common application workloads.
If you are uber geeky, then check it out here.