Few days ago VMware published a precious FAQ about its virtual SMP technology which answers some key questions about the use of multiple CPUs inside ESX virtual machines:
- When do I decide to configure multiple vCPUs for a VM?
- What are the overheads of using multiprocessor VMs? What would I lose by over provisioning vCPUs for VMs?
- Does the ESX scheduler (co-schedule) all of the vCPUs belonging to a VM together?
- Why is co-scheduling necessary and important?
- How does ESX scheduler deal with certain vCPUs belonging to a VM idling while others actively perform work? Do the idle vCPUs unnecessarily burn CPU?
About this topic VMware also published a technical article which describes in details the resource management approach, called co-scheduling, used for vSMP in ESX Server 2.x and ESX 3.x.
Highly recommended.