Hyper-V Dynamic Memory for VMs

Dynamic Memory is a new Hyper-V feature that helps you to use physical memory more efficiently. With Dynamic Memory, Hyper-V treats memory as a shared resource that can be reallocated automatically among running virtual machines. Dynamic Memory adjusts the amount of memory available to a virtual machine, based on changes in memory demand and values that you specify.

Using this test, you can determine whether or not the Dynamic Memory feature is enabled on a virtual machine, and if so, assess how well that feature works. In the process, you can also ascertain the following:

  • Isolate resource-hungry VMs;

  • Understand the Dynamic Memory configuration of each VM;

  • Figure out whether this configuration needs to be fine-tuned to facilitate more efficient and effective resource-sharing among VMs.

Target of the test : A Hyper-V / Hyper-V VDI server

Agent executing the test : An internal agent

Output of the test : One set of results for the each VM on the Hyper-V host monitored

Configurable parameters for the test
Parameter Description

Test period

This indicates how often should the test be executed.


Specify the HOST for which this test is to be configured.

Measurements reported by the test
Measurement Description Measurement Unit Interpretation

Is dynamic memory enabled?

Indicates whether the Dynamic Memory feature is enabled or not in this VM.


There is no global setting to turn Dynamic Memory on or off at the host level. It must be configured for each virtual machine. By default, a virtual machine is set up with the traditional static amount of memory. You can edit the properties of a virtual machine to enable Dynamic Memory.

This measure reports the value Yes if Dynamic Memory is enabled on a VM, and the value No if it is not.

The table below lists the numeric values that correspond to the Yes/No values reported by the measure:



Yes 1
No 0


By default, this measure reports the values Yes or No to indicate whether dynamic memory is enabled or not for a measure. The graph of this measure however, represents the dynamic memory status using the numeric equivaluents - 0 or 1 - only.

Added memory

Indicates the amount of physical memory added to this VM.



Removed memory

Indicates the amount of physical memory removed from this VM.



Physical memory

Indicates the amount of physical memory allocated to this VM.



Guest visible physical memory

Indicates the amount of physical memory actually utilized by this VM as seen from within the VM.



Average pressure

Indicates the average memory pressure on this VM.


Dynamic Memory determines the amount of memory needed by a virtual machine by calculating something called memory pressure. To perform this calculation, Hyper-V looks at the total committed memory of the guest operating system running in the virtual machine and then calculates pressure as the ratio of how much memory the virtual machine wants to how much it has.

A very high value of this measure therefore indicates that the VM is resource-hungry. 

Current pressure

Indicates the current memory pressure in this VM.



Maximum pressure

Indicates the maximum pressure band in this VM.



Minimum pressure

Indicates the minimum pressure band in this VM.



Memory add operations

Indicates the number of memory addition operations performed on this VM since the last measurement period.


A consistent rise in the value of this measure could indicate that the memory needs of the VM are growing.

Memory remove operations

Indicates the number of memory removal operations performed on this VM since the last measurement period.


If Dynamic Memory sees pressure reduce within a VM, it is an indication that memory can be returned back to the pool, making it available for reassignment. To remove unneeded memory from a Dynamic Memory-enabled VM, Hyper-V uses a process called ballooning. Using a balloon, Dynamic Memory effectively blocks the memory freed up by a VM. This means that the VM cannot use the memory until the balloon (the block) is shrunk by being re-assigned that memory from the available memory on the host. Once the balloon is in place, the Dynamic Memory works with the parent partition to reassign the physical memory back to the host. 

Starting memory

Indicates the total amount of RAM in the virtual system, as seen by this guest operating system. For a virtual system with dynamic memory enabled, this represents the initial memory available at startup.


The value of this measure needs to be high enough to allow the guest operating system to start, but should be as low as possible to allow for optimal memory utilization and potentially higher consolidation ratios.

Maximum memory

Indicates the maximum amount of memory that may be consumed by this VM. For a virtual system with dynamic memory enabled, this represents the maximum memory setting.


The value can be set from as low as the value for Startup RAM to as high as 64 GB. However, a virtual machine can use only as much memory as the maximum amount supported by the guest operating system. For example, if you specify 64 GB for a virtual machine running a guest operating system that supports a maximum of 32 GB, the virtual machine cannot use more than 32 GB.

Memory buffer

Defines the amount of extra memory that should be reserved for this virtual machine at runtime, as a percentage of the total memory that the virtual machine is thought to need.


Memory buffer is specified as a percentage because the actual amount of memory that represents the buffer changes in response to changes in memory usage while the virtual machine is running. Hyper-V uses performance counters in the virtual machine that identify committed memory to determine the current memory requirements of the virtual machine and then calculates the amount of memory to add as a buffer. The buffer is determined using the following formula:

Amount of memory buffer = how much memory the virtual machine actually needs / (memory buffer value / 100).

For example, if the memory committed to the guest operating system is 1000 MB and the memory buffer is 20%, Hyper-V will attempt to allocate an additional 20% (200 MB) for a total of 1200 MB of physical memory allocated to the virtual machine.

Memory weight

Defines the memory allocation weighting value for this virtual machine. After all reserves have been met, the remaining memory of the hosting platform will be allocated to virtual systems based on their relative weights (not to exceed the value specified by the Limit property). This property is inherited from CIM_ResourceAllocationSettingData.


This provides Hyper-V with a way to determine how to distribute memory among VMs if there is not enough physical memory available on the host to give every VM the amount of memory it requests.

Memory demand

Indicates the amount of memory that this VM needs to perform correctly, as per the running workload.


A high value indicates that the VM is processing a memory-intensive workload.