On a system with a lower amount of RAM you may find that ESXi allocates too much to run the vmkernel and system services not leaving sufficient memory for running VMs. In the below example, the host has 3 GB of memory. ESXi is showing about 2600 MB available for virtual machines. But an important number for virtual machines is the memory capacity shown on the Resource Allocation in the 2nd image below.
This shows that my VMs have a total capacity of just over 1400 MB for VM memory overhead. A chart of memory overhead per vCPU / VM memory is shown below. VM memory overhead includes space for the VM frame buffer and virtualization data structures like shadow page tables. Once my running VMs have exhausted the 1400 MB of total capacity, I will not be able to start additional VMs even though ESXi may have plenty of free memory.
Virtual Machine Memory Overhead*
Let’s say I have a 1 vCPU VM with 2 GB of memory. ESXi will need a memory overhead of about 137 MB to start the VM. But if I give it 1400 MB memory reservation, then ESXi will need an available capacity of about 1537 MB to start the VM. In my case, the VM won’t be able to start and will display the error: Can’t admit VM: Memory admission check failed. I would need to have an available capacity of more that 1537 MB to start the VM.
So if your host is experiencing this issue, but the summary page for the host is showing that you have available memory you can tweak the memory reservations for system processes to increase the size of Memory: Total Capacity. Note that this is not a supported procedure and underallocating system resources can have a negative performance impact. Select the Configuration tab and then System Resource Allocation.
Click on the Advanced link in the top right hand corner of the window to show advanced configuration options. In the below image I have selected vmvisor object and am dropping the reservation from 768 MB to 256 MB. After a few minutes the 512 MB of memory freed up from the reservation will be available on the Resource Allocation page. There are other objects which could be modified, but a change to the vmvisor reservation can quickly yield 512 MB of free memory. If an object does not let you reduce the reservation, you may get an error or the number will remain unchanged after you click OK.