We have 3 HP 460 blades with dual quad core CPUs and 48Gb of ram in each blade all licence's with ESXi Enterprise Plus.
When we first started out with VMs we applied real world thought on number of CPUs to a VM environment. So if we would give a server a CPU with 4 cores we did the same in a VM and we quickly ran into a problem where the VMs were pausing, as we had over committed on cores, as we have 6 machines all with 2 - 4 CPUs so I think we were using about 20 CPUs where as only having two blades provided us with 8 cores, although the Xeons we have are hyper threaded.
So we reconfigured all of our VMs to use one CPU and that seem to fix the problem, as I understood it a VM was waiting for 4 cores to become availble to process the command.
However we need to allocate more than one CPU to a server, we have already upped it to two CPUs, but we want to take it to 4. How can we set this and not run into the stalling situation we had before? We now have a lot more VMs than we did when we started out on this. Can we guatntee a certain number of processors to VMs?
CPUs aren't free. If you exceed the processing capability of your host, no amount of games will help you.
It is possible to guarentee a given VM specific MHz (shared across all its CPUs) - you might give that a try. However, you've already seen that if you give everything what it wants that you will end up with performance issues, indicating you are overcommitting your host. If you guarentee resources to one VM, the rest will fight that much harder over the rest and you will just shift the problem. You really need more hardware.
However we need to allocate more than one CPU to a server
Based upon what? What specific metrics are you seeing that makes this necessary?
but we want to take it to 4. How can we set this and not run into the stalling situation we had before?
It is unavoidable, if you NEED 4 CPU for a VM, then probably those programs are NOT candidates for virtualization, VM purpose is NOT performance, it is management and ease of access, VM's are not a replacement for physical servers, they come close in many situations, but performance is NOT the goal of VM's, and it NEVER was adverstised nor was it designed that way.
performance is NOT the goal of VM's, and it NEVER was adverstised nor was it designed that way.
This isn't correct- there are NUMEROUS whitepapers in which VMware advertises physical equivalent (and even better than native) performance for VMs.
An entire page dedicated to performance advertisement:
And a bunch of whitepapers:
Why do you continue to spout this nonsense?
We are basing the need for more CPU in the guest VM task manager with both CPUs sitting at approx 95% constantly, adding more CPUs will reduce this, but we do not want to impact the performance on teh rest of our systems