Twitter poll: how many vCPUs do you think a physical CPU Core can handle with vSphere 5

 

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.

 

Assuming, low activity single vCPU VMs on modern Xeon 32nm physical CPU

 

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!

Click here to take survey

 

Checking that a VM has the VMware Balloon driver running with esxtop

 

To check that your VMs have loaded and are running the VMware Memory Balloon driver in the guest OS, you can use esxtop.

 

  • Connect to your ESXi host using vMA, the DCUI or PuTTy (needs SSH service running) and run esxtop.
  • Switch to the Memory page (press M)
  • Press F to add a field
  • Press J to add the field “MCTL = MEM Ctl (MB)”
  • Press space to return to the main memory view page of esxtop.
  • In the new MCTL? column, look at the list of VMs – a “Y”  means that the driver is loaded and running whereas a “N” means that the balloon driver is not present.

 

This can be useful to double check things if you run into a problem troubleshooting memory ballooning issues as I have seen cases where VMware Tools reports as “OK” for the VM but the balloon driver is not running when viewed in esxtop.

 

 

How to see if a Device/Datastore supports VAAI on ESXi 5 using ESXTOP or ESXCLI

Previously, using my home lab environment I had wondered how to check to see if my shared storage was using VAAI (VMware Storage APIs for Array Integration) – this is a technology that provides hardware acceleration functionality for your storage in vSphere, and was first introduced for vSphere ESX(i) 4.1. Essentially, this allows your hosts to offload certain virtual machine and storage management functions to hardware that supports VAAI.

 

The very first way I found I was able to see if VAAI was active on a datastore was by using ESXTOP. Silly – as it is quite a long-winded way of determining this, but it gave me an idea of whether it was in use or not. Anyway, to get to this ESXTOP view, go to your devices screen (press u) and remove a few columns that are taking up room (press F to add/remove columns), toggle all columns except the DEVICE name column, then add the counters we are interested in for VAAI. (press O – for VAAISTATS). Like so:

 

 

Now you can see the VAAI statistics for your datastores/devices in ESXTOP – notice how my HP/LHN P4000 VSA lab iSCSI datastores are showing VAAI stats as expected, whereas my shared NFS Datastores from a FreeNAS appliance are blanked out / not supported in the screenshot below:

 

 

 

Here is a useful list of ESXTOP counters that are explained in detail if you are wondering what each of these shows exactly: http://communities.vmware.com/docs/DOC-11812 – Section 4.2.9 shows ZERO statistics specifically, which is one of the features VAAI can help hosts offload to hardware.

 

So now, for a slightly easier / clearer way of viewing whether VAAI is active or not – we can use esxcli!

 

Connect up to an ESXi 5 host using SSH or the DCUI and issue the following command (Where the device identifier is specified after -d) – remember to find the device identifier applicable to the device you want to check for VAAI status on – one way of doing this is to identify the datastore using your vSphere client – Hosts & Clusters view -> Select ESXi host -> Configuration -> Storage -> Devices View tab -> Look for device identifier in the name column. Once you have your device ID, issue the command below:

 

esxcli storage core device list -d naa.6000eb3afd81276200000000000000bd

 

You will get a list out of the device along with various settings and feature statuses. We are specifically looking for “VAAI Status” – if it is enabled, we will see “VAAI Status: enabled” as in the example below.

 

 

Brian Ragazzi has also showed an even easier method (thanks Brian!) to get a list of devices along with their VAAI feature support listed using:

 

esxcli storage core device vaai status get

 

using “esxcli storage core device vaai status get” to get VAAI status for devices

 

Interestingly, whilst researching this, I came across a blog post by Jason Langer who also explains the first method I showed above of checking VAAI status – in his case he was using Netapp storage and found some other interesting caveats along the way in terms of getting VAAI enabled on his hosts with his particular device. Well, I hope this post helps and as always, if you spot anything out of place – feel free to chime in on the comments section!