When configuring HA Admission Control based on a percentage, do you ever look at the current failover capacity from the vCenter inventory? When you do, it is possible you also noticed that the current failover capacity does not reflect the amount it should be, based on your knowlegde. You are running many VM’s, but still the current failover capacity remains very high.
When you configure HA Admission Control, based on a percentage, the HA mechanisms do not look at the configured memory of the VM. I can imagine that you asume that it does. What it actually does, is looking at the configured memory reservation of the VM. This means that when you configure HA Admission Control based on a percentage and you do not configure any reservations on the VM’s, the actual failover capacity HA calculates, will be only 100% minus the memory overhead that the hypervisor uses.
When you want to be sure that the configured HA Admission Control has a meaning, be sure to configure reservations on the VM’s.
What I often want to do, is to decide a percentage and than configure that percentage as a memory reservation on the VM’s. When using for example 75%, I would like a memory reservation of 1536MB on a VM that has 2048MB configured.
For the people who like this idea for every VM in the environment, I created a small powercli script, that will prompt you for a percentage and then apply this percentage to all the VM’s, based on the configured memory setting of the VM.
Here you go:
Connect-VIServer "xxx" -User "xxx" -Password "xxx"
$percentage = Read-Host "Give me the % from your memory MB setting you want to apply as memory reservation"
$Factor = $percentage / 100
$Allvm = Get-VM
foreach ($VM in $Allvm) {
$MemoryMB = $VM.MemoryMB
$Reservation = $MemoryMB * $Factor
Get-VM $VM | Get-VMResourceConfiguration | Set-VMResourceConfiguration -MemReservationMB $Reservation
}
- My colleague Gabesvirtualworld published an article about “VMware HA Admission Control and VM reservations”, so check it out!


