VMware Cloud Community
weizhu
Contributor
Contributor

memory reservation

I have an esxi host that has 512GB memory.  I have three vms that will consume all the memory.  Since there is no memory overcommit, I wanted to set the memory reservation equal to the memory assigned to the vms.  One has 256GB, the other 2 have 128GB.  However, I can't powered on all the vms.  Keep complaining that can't find a host to run the vm.  I have to reduct the Memory reservation for one of the vms by ~18GB to be able to run it.  Is there a formula to figure out how much overhead is used by vmware so I can reduce the memory reservation accordingly?

0 Kudos
2 Replies
vijayrana968
Virtuoso
Virtuoso

With new versions of vSphere, VMware has reduced memory overhead based on CPU and RAM you assigned to VM. Attached is the Memory overhead calculator, this will not give you exact size as it is a bit old but will give you overview.

To find exact amount of overhead on each VM, please see the log in VM log file :

"In order to find out how much overhead memory is needed for your specific configuration, first power on the virtual machine in question. Look in the vmware.log file. When the virtual machine powers on, the amount of overhead memory it needs is printed to the log. Search within the log for VMMEM to see the initial and precise amount of overhead memory reserved for the virtual machine."

Source : vSphere 6.0 Documentation Memory Overhead

0 Kudos
SK21090
Enthusiast
Enthusiast

Reservation of Full Memory of ESXi is not recommended. Best practice is to always keep the 2/3 reservation of memory for critical Virtual Machines

So I suggest to check the average memory used by your VM's and keep that number as a reservation instead of full memory reservation this

way you don't need to count memory overhead as ESXi uses its own algorithm for this. Below is for your information

pastedImage_0.png

reservation guarantees that amount even when the physical server is heavily loaded. After a virtual machine has accessed its full reservation, it is allowed to retain that amount of memory and the memory is not reclaimed, even if the virtual machine becomes idle.

For example, assume you have 2 GB of memory available for two virtual machines. You specify a reservation for 1 GB of memory for VM1 and 1 GB of memory for VM2. Now each virtual machine is guaranteed to get 1 GB of memory if it needs it. However, if VM1 is only using 500 MB of memory and hasn’t accessed all the memory than VM2 can use 1.5 GB of memory until VM1’s resource demand increases to 1 GB

Please consider awarding points for "Correct" or "Helpful" replies. Thanks....!!! VCAP-DCV | VCP-DCV | VCP-NV | MCSA
0 Kudos