Symmetrical Multiprocessing in the Physical and Virtual World
When dealing with physical servers, multiple CPU’s will always aid in processing speed. However, when dealing with the virtual world, don’t assume the same is true. If your running VMWare ESX, whenever the virtual machine (VM) needs the CPU, the VMkernel can send the load to any CPU, so a single CPU virtual machine can get benefits similar to SMP. If you have a licence to SMP, you can assign multiple processors to a virtual machine, but beware that this may not produce desired results. When dealing with multiple processors, the virtual machine will force co-scheduling of physical processors. In this case, when one processor is scheduled, the other ones are as well. This can take resources away from other VMs. Further, all processes may lose the processor time before task completion if a process on one virtual CPU is waiting too long for another process on a different virtual CPU. At this point all benefits of using multiple CPUs are lost.
So, in the virtual world, it is indeed a bit counter-intuitive when you think that dedicating more CPUs to a VM could possibly hurt performance. I’ve actually had the misfortune of seeing this in action and it can be a painfully maddening experience.
This entry was posted in Intel, Processors/CPUs, Technology, Virtualization and Cloud Computing and tagged CPU, ESX, Intel, multiple cores, Quad Core Intel Xeon E7500, SMP, symmetrical multiprocessing, virtual machine, virtualization, VM, VMkernel, vmware, VMWare ESX, Xeon. Bookmark the permalink.