6.0.1

Table Of Contents
ESXi memory virtualization adds little time overhead to memory accesses. Because the processor's paging
hardware uses page tables (shadow page tables for software-based approach or two level page tables for
hardware-assisted approach) directly, most memory accesses in the virtual machine can execute without
address translation overhead.
The memory space overhead has two components.
n
A fixed, system-wide overhead for the VMkernel.
n
Additional overhead for each virtual machine.
Overhead memory includes space reserved for the virtual machine frame buffer and various virtualization
data structures, such as shadow page tables. Overhead memory depends on the number of virtual CPUs
and the configured memory for the guest operating system.
Overhead Memory on Virtual Machines
Virtual machines require a certain amount of available overhead memory to power on. You should be aware
of the amount of this overhead.
The amount of overhead memory needed for a virtual machine depends on a large number of factors,
including the number of vCPUs and memory size, the number and types of devices, the execution mode
that the monitor is using and the hardware version of the virtual machine. The version of vSphere you are
using can also effect the amount of memory needed. VMX automatically calculates the amount of overhead
memory needed for a virtual machine.
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.
How ESXi Hosts Allocate Memory
A host allocates the memory specified by the Limit parameter to each virtual machine, unless memory is
overcommitted. ESXi never allocates more memory to a virtual machine than its specified physical memory
size.
For example, a 1GB virtual machine might have the default limit (unlimited) or a user-specified limit (for
example 2GB). In both cases, the ESXi host never allocates more than 1GB, the physical memory size that
was specified for it.
When memory is overcommitted, each virtual machine is allocated an amount of memory somewhere
between what is specified by Reservation and what is specified by Limit. The amount of memory granted to
a virtual machine above its reservation usually varies with the current memory load.
A host determines allocations for each virtual machine based on the number of shares allocated to it and an
estimate of its recent working set size.
n
Shares — ESXi hosts use a modified proportional-share memory allocation policy. Memory shares
entitle a virtual machine to a fraction of available physical memory.
n
Working set size — ESXi hosts estimate the working set for a virtual machine by monitoring memory
activity over successive periods of virtual machine execution time. Estimates are smoothed over several
time periods using techniques that respond rapidly to increases in working set size and more slowly to
decreases in working set size.
This approach ensures that a virtual machine from which idle memory is reclaimed can ramp up
quickly to its full share-based allocation when it starts using its memory more actively.
Memory activity is monitored to estimate the working set sizes for a default period of 60 seconds. To
modify this default , adjust the Mem.SamplePeriod advanced setting. See “Set Advanced Host
Attributes,” on page 115.
vSphere Resource Management
36 VMware, Inc.