61
Configuring VM Memory
When a VM is first created, it is allocated a fixed amount of memory. To improve the utilisation of physical memory
in your XenServer environment, you can use Dynamic Memory Control (DMC), a memory management feature
that enables dynamic reallocation of memory between VMs.
XenCenter provides a graphical display of memory usage in its Memory tab. This is described in the XenCenter
Help.
In previous editions of XenServer adjusting virtual memory on VMs required a restart to add or remove memory
and an interruption to users' service.
Dynamic Memory Control (DMC) provides the following benefits:
Memory can be added or removed without restart thus providing a more seamless experience to the user.
When servers are full, DMC allows you to start more VMs on these servers, reducing the amount of memory
allocated to the running VMs proportionally.

What is Dynamic Memory Control (DMC)?

XenServer DMC (sometimes known as "dynamic memory optimization", "memory overcommit" or "memory
ballooning") works by automatically adjusting the memory of running VMs, keeping the amount of memory
allocated to each VM between specified minimum and maximum memory values, guaranteeing performance
and permitting greater density of VMs per server. Without DMC, when a server is full, starting further VMs will
fail with "out of memory" errors: to reduce the existing VM memory allocation and make room for more VMs
you must edit each VM's memory allocation and then reboot the VM. With DMC enabled, even when the server
is full, XenServer will attempt to reclaim memory by automatically reducing the current memory allocation of
running VMs within their defined memory ranges.
Without DMC, when a server is full, starting further VMs will fail with "out of memory" errors: to reduce the
existing VM memory allocation and make room for more VMs you must edit each VM's memory allocation and
then reboot the VM. With DMC enabled, even when the server is full, XenServer will attempt to reclaim memory
by automatically reducing the current memory allocation of running VMs within their defined memory ranges.
Note:
Dynamic Memory Control is only available for XenServer Advanced or higher editions. To learn
more about XenServer Advanced or higher editions and to find out how to upgrade, visit the
Citrix website here.

The Concept of Dynamic Range

For each VM the administrator can set a dynamic memory range – this is the range within which memory can
be added/removed from the VM without requiring a reboot. When a VM is running the administrator can adjust
the dynamic range. XenServer always guarantees to keep the amount of memory allocated to the VM within
the dynamic range; therefore adjusting it while the VM is running may cause XenServer to adjust the amount of
memory allocated to the VM. (The most extreme case is where the administrator sets the dynamic min/max to
the same value, thus forcing XenServer to ensure that this amount of memory is allocated to the VM.) If new
VMs are required to start on "full" servers, running VMs have their memory ‘squeezed’ to start new ones. The
required extra memory is obtained by squeezing the existing running VMs proportionally within their pre-defined
dynamic ranges
DMC allows you to configure dynamic minimum and maximum memory levels – creating a Dynamic Memory
Range (DMR) that the VM will operate in.
Dynamic Minimum Memory: A lower memory limit that you assign to the VM.
Dynamic Higher Limit: An upper memory limit that you assign to the VM.