I have a VMWare ESXi Cluster and I'm trying to get my head around memory consumption on ESXi. My physical server has 48GB of memory. The host is running one VM which has been allocated 12GB RAM with no reservation -
So now as a result of this my ESXi hosts consumed memory is sitting at about 14GB - 12GB for the VM (I assume) + 2GB running processes etc.
If I was to run out of consumed memory, would the ESXi start running into faults or is it only if I run out of active memory? Technically I would like to overallocate so that if I had to take a node out of the loop for maintenance, I can put 4 VM's that have 12GB allocations - even though those VM's aren't actually consuming all of that memory and only for a short period of time. All VM's are running Linux/CentOS or Ubuntu.
I hope this makes sense!
You can safely overcommit without fear of faults: to an extent
See: https://labs.vmware.com/vmtj/memory-overcommitment-in-the-esx-server
VMware has a number of memory reduction options available and will employ those methods in the event of resource contention.
Memory sharing, compression, ballooning and swap are used to try to keep your virtual machines active.
Not faults no, it'll swap to disk and your performance will plummet but no it won't fault as such.
That said, memory is cheap right now, always try to have enough in your hosts so they don't have to swap - or use NVMe (or regular SSD) to swap to if you must.