I was reading a document the other day where it was mentioned that you could potentially run up to 25 VMs per Physical CPU core with vSphere. Now first off, this wasn’t worded very well, it should have perhaps read “vCPUs” instead of “VMs”. The assumption of course was that each VM would be a single vCPU machine.
Nevertheless this is still a bit of a precarious thing to say though if you do not mention what kind of Physical CPU we are talking about, and what kind of load these vCPUs are going to be bearing. I think the assumption was that the VMs would be running extremely light loads and almost potentially be sitting idle most of the time to achieve that kind of density per Physical CPU core.
So with that thinking I decided to ask the question on Twitter. I only had 12 responses to the poll, but nevertheless, here are the results in Pie Chart format. The most sensible answer I got was under the “other” category, which was answered as “until %RDY >=10“, referring to the ESXTOP performance counter for CPU Ready time called %RDY. So this answer was saying keep adding vCPUs per core until you start seeing CPU %RDY (remember to look at this figure for individual vCPUs, not aggregated vCPUs) figures of greater than, or equal to 10%. This is the general figure to watch for, as anything over and above this would usually indicate CPU contention issues. I thought that this was a clever answer, but the other figures are also interesting to look at. The general assumption was that we were talking about low activity VMs with 1 vCPU, and the host system was running on a modern Intel Nehalem / 32nm Xeon processor.
Not too many results to work off, considering I only got 12 responses, but the general consensus seems to be that 5-10 single vCPU VMs to 1 physical CPU core. Of course this isn’t a recommendation at all, its all down to opinion from an online poll, and the poll doesn’t take into account any types of workloads or specific processor specifications. The key thing to look out for here when considering consolidation ratios like this would be what kind of workload these vCPUs would be running. You would also always want to watch your performance stats (peaks and averages), making sure that you don’t get any high %RDY times, scaling up accordingly.
I have opened up another voting results collector to get a new set of results from the above results. Do you have an opinion? Please add your view on this poll, it’s only one question and will literally take a couple of seconds to enter!