By Duncan Epping, Principal Architect.
Someone asked me today how the calculation is done for memory when the "Percentage Based" admission control policy was selected. As hopefully all of you know by now, the percentage based admission control policy does not work with fixed slot sizes. (More details to be found in the Availability Guide and the Best Practices white paper.)The percentage based admission control policy is a per virtual machine mechanism, hence the reason I always prefer this admission control policy as it is most flexible.
So how is the memory part calculated? Memory is calculated by taking the total amount of resources in a cluster and from this the virtualization overhead like agents and the VMkernel is subtracted. That will give you the total amount of resources for workloads in the cluster. If you have set your percentage to for admission control to 25 then this is also subtracted from the total as available for virtual machines, as this is reserved for a possible fail-over. What is now left is what can be "claimed" by virtual machines.
With claimed I am referring to the fact that if virtual machines are powered-on the memory resources that are reserved (including the memory overhead) for that virtual machine is taken from the total amount of available resources. To give an example:
Cluster has 100GB of memory resources available. The percentage reserved for fail-over is 10. There is some additional minor memory overhead this is also subtracted. In total 89GB of memory is available for workloads. A virtual machine with 8GB of memory and a 2GB memory reservation is powered on. From the 89GB that 2GB memory reservation is subtracted and the memory overhead of 300MB is subtracted. Now there is 86.7GB for workloads.

Hi Duncan, as this HA admition control calculation is based on vm reservation (rather than slot size for “host failure” policy), i guess this could lead to a serious overcommit if you don’t use vm reservation right ?
Good point NiTRo. If no reservations are set this could lead to overcommitment. But than again HA is all about restart guarantees and is not a solution for resource management.
Duncan, thanks for this post and the many, many other posts you have given us. I think the answer is obvious, but wanted to make sure. In regards to HA and a percentage based admission control policy, when I view the Hosts tab in the cluster and see the “%CPU” and “% MEM” columns, are those calculated based on all the host resources or all the host resources minus virtualization overhead AND minus percentage reserved for HA?
In other words, I’m kind of looking for the formula that those are calculated off of and wondering if this is it?
Host%MEM = (Sumof(vmMemUtilization))/(HostMemTotal-VirtOvhd-Rsvd)
While I have diverted us to this subject, is the percentage reserved fixed? Meaning, will the hosts reserve that memory regardless of need? In other words, if I set percentage reserved to 100%, nothing would run.
Thanks in advance for your thoughts.