eG Monitoring
 

Measures reported by XenMemoryTest

When computing the memory footprint of a Xen host, there are two components that must be taken into consideration. First, there is the memory consumed by the Xen hypervisor itself. The hypervisor is a software program that manages multiple operating systems (or multiple instances of the same operating system) on a single computer system. It manages the system's processor, memory, and other resources to allocate what each operating system requires. Hypervisors are designed for a particular processor architecture and may also be called virtualization managers.

The other component that can impact the memory consumption of a XenServer host is the control domain. The control domain is a privileged VM that provides low-level services to other VMs, such as providing access to physical devices. It also runs the management tool stack.

This test reports the memory usage of the control domain and hypervisor of the XenServer, and enables administrators to judge whether/not adequate free memory is available on the XenServer host for use by the virtual machines.

Measurement Description Measurement Unit Interpretation
Free_memory Indicates the amount of memory remaining unused with the host. MB Ideally, the value of this measure should be very high. If the value of this measure is very low or is steadily decreasing, it is indicative of a severe memory erosion at the host-level. If the free memory is very low or is decreasing consistently, you may want to compare the value of the Memory in use measure between the xen_server and control_domain descriptors of this test, to know where the host's memory has been spent the maximum – in supporting the control domain's processes? or because of memory-intensive VMs?

The detailed diagnosis of this measure for the control_domain descriptor reveals the top-10 memory consuming processes on the control domain and the amount and percentage of memory they consume. The detailed diagnosis of this measure for the xen_server descriptor reveals the top-10 memory consuming VMs and the amount and percentage of memory they consume.

Total_memory Indicates the total physical memory available for use at the host. MB  
Used_memory Indicates the amount of physical memory that is allocated to the VMs. MB This measure is only available for the xen_server descriptor of this test.
Memory_usage Indicates the percentage of physical memory that is allocated to VMs. Percent This measure is only available for the xen_server descriptor of this test.

A high value could indicate excessive memory allocation to the VMs.

You can use the detailed diagnosis of this measure to know how much memory has been allocated to each VM on the host.

Vm_used_memory For the control_domain descriptor, this represents the amount of memory utilized by the control domain. For the xen_server descriptor, this is the host's view of the memory used by the VMs. MB A very high value for this measure or a consistent rise in the value of this measure is indicative of abnormal memory usage by the control domain and/or the VMs (depending upon the descriptor). In such circumstances, you may want to compare the value of this measure between the control_domain and the xen_server descriptors to isolate the probable cause for the memory drain - is it owing to memory-hungry processes on the control domain? Or is it because of memory-intensive VM processes?
Mem_reclaimed Indicates the amount of memory that is currently reclaimed by the dynamic memory control (DMC) of the XenServer from its VMs. MB 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 or to meet a fixed target, guaranteeing performance and permitting greater density of VMs per server.

If DMC is enabled, even when hosts are full, XenServer will attempt to reclaim memory by reducing the memory allocation of running VMs to their defined static values/within specified dynamic ranges.

A high value for this measure implies that a large chunk of memory has been reclaimed from the guests. If the value of this measure is abnormally high, it could mean either or all of the following:

  • The host could be running seriously short of memory, forcing DMC to reclaim the maximum amount of memory from the VMs;
  • The static memory target/dynamic minimum memory set for the VMs could be very low, allowing a lot of memory to be reclaimed
Either way, if too little memory is available to a VM, it could cause that VM to boot slowly. It could also result in poor VM performance and stability issues. To avoid such eventualities, you need to configure DMC in such a way that the VMs always have enough memory to operate smoothly. Using DMC, it is possible to operate a guest virtual machine in one of two modes:

  • Target Mode: The administrator specifies a memory target for the guest.XenServer adjusts the guest's memory allocation to meet the target. Specifying a target is particularly useful in virtual server environments, and in any situation where you know exactly how much memory you want a guest to use. XenServer will adjust the guest's memory allocation to meet the target you specify.
  • Dynamic Range Mode: The administrator specifies a dynamic memory range for the guest; XenServer chooses a target from within the range and adjusts the guest's memory allocation to meet the target. Specifying a dynamic range is particularly useful in virtual desktop environments, and in any situation where you want XenServer to repartition host memory dynamically in response to changing numbers of guests, or changing host memory pressure. XenServer chooses a target from within the range and adjusts the guest's memory allocation to meet the target.
Choose a mode wisely and exercise prudence when configuring the corresponding memory values, as they determine how much memory a VM can use for its own operations, and thus governs how well the VM performs.
Mem_reclaimed_max Indicates the maximum amount of memory that was reclaimed by DMC from the VMs on the target XenServer. MB A low value is desired for this measure. A high value could indicate either or all of the following:
  • The host could be running seriously short of memory, forcing DMC to reclaim the maximum amount of memory from the VMs;
  • The static memory target/dynamic minimum memory set for one/more VMs could be very low, allowing a lot of memory to be reclaimed
Either way, if too little memory is available to a VM, it could cause that VM to boot slowly. It could also result in poor VM performance and stability issues. To avoid such eventualities, you need to configure DMC in such a way that the VMs always have enough memory to operate smoothly.
Vm_used_memoryPct For the control_domain descriptor, this represents the percentage of total physical memory of this host (i.e., the value of the Total memory available measure) that is utilized by the control domain. For the xen_server descriptor, this indicates what percentage of the allocated memory (i.e., the value of the Memory allocated to VMs measure) have the VMs on the host utilized. Percent A very high value for this measure or a consistent rise in the value of this measure is indicative of abnormal memory usage by the control domain and/or the VMs (depending upon the descriptor). In such circumstances, you may want to compare the value of this measure between the control_domain and the xen_server descriptors to isolate the probable cause for the memory drain - is it owing to memory-hungry processes on the control domain? Or is it because of memory-intensive VM processes?

The detailed diagnosis of this measure, which is available only for the xen_server descriptor, reveals how well each VM utilized the allocated memory resources, and thus points you to memory-hungry VMs.

Available_memoryPct Indicates the percentage of the total memory of the host that is being utilized by the VMs. Percent A high value for this measure indicates the existence of one/more resource-hungry VMs on the host. If the condition persists, then the host may not have enough memory to run its own processes. In such situations, you can use the detailed diagnosis of the Vm_used_memoryPct measure to identify the resource-intensive VMs.