VMware Cloud Community
eashouri
Contributor
Contributor

shared memory confusion

  Hi guys, I was wondering if someone could explain the below to me if possible! Smiley Happy

  If a VM has no memory limit set but it has 8GB configured does that mean it goes to the root resource pool (the blade it sits on if no memory pool is explicity set) for more memory if it breaches 8GB or does it start paging to the ESX host?

  Also the concept of shared memory in the below cut and paste.  Is this shared memory below defined as 4.29GB memory that any VM on the host can use if required?

1772171.png

Thanks

Reply
0 Kudos
1 Reply
peetz
Leadership
Leadership

Hi,

how can a VM breach the 8GB limit if it has only 8GB configured??

The configured amount of RAM is what is presented to the guest OS. If the guest OS (e.g. Windows) wants to consume more than that it will use its own memory management to accomplish this (e.g. using a swapfile inside the guest OS).

According to the "Shared memory" this is the amount of RAM that this VM shares with (at least one) other VM(s) running on the same host. ESX has a process called transparent page sharing (TPS) that continously scans for memory pages that have the same content (e.g. all zeros) in multiple VMs, and will then collaps these pages to one copy that is just referenced by all VMs using it. As soon as a VM writes to such a page it will get its own copy again.

If you want to thoroughly understand memory management in ESX I suggest that you read this paper:

http://www.vmware.com/resources/techresources/10129

Andreas

- VMware Front Experience Blog

Twitter: @VFrontDe, @ESXiPatches | https://esxi-patches.v-front.de | https://vibsdepot.v-front.de
Reply
0 Kudos