That is a wonderful article on the CPU Contention that can occur in a VMWare environment. I'm hear to talk to you about how to fix the CPU contention.
The easiest method is to give all VM's a single processor.
- Pros: No contention on the CPU's. If a VM is ready to run once a CPU becomes available it will have a chance.
- Cons: Limited CPU power to any VM. VM's that could benefit from having 2 or more CPUs at one time do not get that advantage.
Divide VM's out based on the number of CPU's they have. So if you have 8 CPUs, Give 4 to VM 1, give 2 to VM 2, and give 1 to VM 1, leaving 1 CPU for the host.
- Pros: No contention on the CPU's. All VM's have a CPU and are ready to run.
- Cons: Why have a VM then? Dedicated hardware on a VM Host, really is no different than having dedicated hardware as seperate systems.
Assign VM's to a VMHost based on the number of CPU's. VMHost 1 only has 1 CPU VMs, while VMHost 2 only has 2 CPU VMs, and so on.
- Pros: No contention on the CPUs, as when one VM releases the CPUs, it's the exact number of CPUs that any other VM on that host would need.
- Cons: Easier to overload a single VMHost. You need to be careful in the number VMs on a single VMHost. A VMHost with only 2 CPU VMs won't be able to have as many VM's as the 1 CPU VMHost.
These are three solutions I have worked with customers that I have run into this issue with. They all have their Pros and Cons, which is right for your environment is something you will have to decide. Just remember think outside of the box because it could be #4 something total different or a combination of these. Let me know what you find and how you fix it.