VMware Cloud Community
herevirtually
Contributor
Contributor
Jump to solution

Memory Overcommitment in ESX3.x

Hello,

I hope somebody can help to clarify my understanding of memory overcommitment in ESX3.X.

Say I have an ESX host with 4 VMs. Let's say each of the VMs has 3GB of memory configured (i.e. if it's a Windows OS, the user sees 3GB in the Control Panel), a 2GB Memory Limit and a 1GB Memory reservation. So the total memory allocated to VMs is 12GB (based on VM configured memory), 8GB (based on VM memory limits) and 4GB (based on VM Memory reservations).

In the above scenario,

Is a host with 2GB of host RAM overcommitted (i.e. physical host RAM is less than total VM reserved RAM)?

Is a host with 6GB of host RAM overcommitted (i.e. physical host RAM is less than total VM limit RAM)?

Is a host with 10GB of host RAM overcommitted? (i.e. physical host RAM is less than total VM configured RAM)?

Obviously what I'm getting at is ... is the statement "that ESX host is overcommited from a memory perspective" based on VM configured RAM, VM limit RAM or VM reserved RAM?

I realise this is a pretty basic question but I souldn't find an answer anywhere.

Thanks,

herevirtually.

Tags (1)
Reply
0 Kudos
1 Solution

Accepted Solutions
weinstein5
Immortal
Immortal
Jump to solution

i) Yes overcommit is the ability to have vms assigned more memory than what is available on the ESX Server - it is things like TPS that allow for this -

ii) No - Yes you can set reservations on your vm so that they total more than installed memory in your ESX host BUT you will only be able to start VMs as long as the vmkernel satusfy the reservation - for exampl you are in the habit of building Vms assigning 4 GB of and setting the reservation to 2 GB - you have 8 VMs on an ESX server where there is 8 GB available to the VMkernel - your start 4 VMs - the 8 GB is now reserved for these 4 VMs - you now want to start the fifth VM you will not be able to because the vmkernel can not gaurantee the reservation - this is even the case if the 4 VMs are only using 1 GB of the 8 GB of RAM

If you find this or any other answer useful please consider awarding points by marking the answer correct or helpful

If you find this or any other answer useful please consider awarding points by marking the answer correct or helpful

View solution in original post

Reply
0 Kudos
3 Replies
weinstein5
Immortal
Immortal
Jump to solution

Welcome to the Forums - first thing to understand is the vmkernel, the hyervisor doing the the virtualization, will not carve out 3 GB to each VM it will provide the memory that the VM needs - so if each VM needs only 256 MB than each will get access to 256 MB - so to answer you question is an ESX house become over committed when the demand excedes memory availble to the vmkernel -

Another thing the vmkernel does is something called Transparent Page Sharing - which means the vmkernel sees all pages being stored by the VMs and will store pages that are identical one time in Read Only Memory - when the VM goes to write to that page it will be copied to tp a new spot in memory and wirte will occur. So in the example above even though each VM is using 256 MB and you might think that they will be using 1024 MB total - it might be closer to 600 MB because of Transparent Page Sharing -

In regards top Limits you can actually run into a problem in the case where one VM needs its full 3 GB but you have set the limit to 2 GB - the vmkernel will only provide 2 GB the extra 1 GB will be swapped to disk affecting VM performance even if there is extra memory available -

If you find this or any other answer useful please consider awarding points by marking the answer correct or helpful

If you find this or any other answer useful please consider awarding points by marking the answer correct or helpful
Reply
0 Kudos
herevirtually
Contributor
Contributor
Jump to solution

Thanks for the answer weinstein5. Just to be certain I understand correctly:

:smileyinfo: I've seen on some virtualisation-related websites etc that memory overcommitment is one of the big advantages of ESX wrt other hypervisors when doing VDI because it allows "memory overcommitment". In this specific context - what does "memory overcommitment" mean? Is it that an 8GB host can have 4 X 3GB configured (i.e. 3GB in the Windows Control Panel) VMs because the vmkernel only allocates memory as needed?

(ii) In regard to Transparent page sharing - am I correct in saying that even with transparent page sharing, a 4GB RAM host would still only be able to allocate 4GB of "Reservation" memory to VMs (e.g. 4 VMs with a 1GB reservation each)? So, what I am asking is - does the memory overcommitment referred to in :smileyinfo: above allow a host to allocate more reservation memory than the amount of physical memory it has?

Thanks,

herevirtually.

Reply
0 Kudos
weinstein5
Immortal
Immortal
Jump to solution

i) Yes overcommit is the ability to have vms assigned more memory than what is available on the ESX Server - it is things like TPS that allow for this -

ii) No - Yes you can set reservations on your vm so that they total more than installed memory in your ESX host BUT you will only be able to start VMs as long as the vmkernel satusfy the reservation - for exampl you are in the habit of building Vms assigning 4 GB of and setting the reservation to 2 GB - you have 8 VMs on an ESX server where there is 8 GB available to the VMkernel - your start 4 VMs - the 8 GB is now reserved for these 4 VMs - you now want to start the fifth VM you will not be able to because the vmkernel can not gaurantee the reservation - this is even the case if the 4 VMs are only using 1 GB of the 8 GB of RAM

If you find this or any other answer useful please consider awarding points by marking the answer correct or helpful

If you find this or any other answer useful please consider awarding points by marking the answer correct or helpful
Reply
0 Kudos