Squeezing Virtual Machines out CPU Cores

images Are you trying to squeeze every CPU cycle out of your dual or quad core processors? Unfortunately for those who like to over-clock CPUs for gaming, over utilizing CPU doesn’t quite work the same on virtual hosts (ESX or Hyper-V).

From my experience, I know you can get anywhere from 8 – 10 vCPUs per core, but I have found a sweet spot of 4 VMs per core will provide decent performance for the user. Remember, you don’t want users waiting 30 seconds for a logon or screen refresh… Over utilizing memory will cause user frustration too.

Eric Siebert has written an excellent article on SearchNetworking.com called “Sizing server hardware” which goes into “nuts and bolts” details for sizing virtual host server hardware.

My opinion is to “Always! Always!” think of the users experience when considering your best practices. Sure 100 VMs on a host sounds good but what kind of performance will users have? I’ve had my share of complaints over slow virtual servers and believe me you don’t want users to start complaining that your (that’s right, your!) virtual servers are slow.

Rule of thumb: Keep it simple, 4 VMs per CPU core. Don’t use more than one vCPU per VM unless the application running on the virtual server requires two or unless the developer demands two and calls your boss. VMs with one vCPU run more efficient and from my experience nobody seems to notice, except for – maybe, over-clockers!

Here’s something I wrote a while back:

The measurement of a successful virtual infrastructure deployment is not how many VMs can be hosted per host, it’s how many users can be satisfactorily serviced without them knowing they are using virtual technology. Virtualization should be invisible. Once users start noticing foot prints in the snow, it’s over…”

Originally posted 2009-02-12 16:30:14. Republished by Blog Post Promoter