Hyper-V dynamic memory not correctly assigning more memory

hyper-vlow-memorymemory usagewindows-server-2012

So, I got an alert from our monitoring system that there's less than 15% memory free on a virtual machine. I log in to investigate, it turns out that the VM in question is a Hyper-V VM with Dynamic Memory configured, running on Windows Server 2012 (not R2). The host is also Windows Server 2012 (not R2).

Looking in Hyper-V manager I can see the following under the "Memory" tab:

Startup Memory: 2048 MB
Dynamic Memory: Enabled
Minimum Memory: 512 MB
Maximum Memory: 8192 MB
Assigned Memory: 2826 MB [Plenty of opportunity to expand]
Memory Demand: 2769 MB
Memory Status: Low

Looking inside the guest, I see the following using Task Manager:

In use: 3.2 GB
Available: 483 MB
Committed: 3.6/6.2 GB
Cached: 410 MB
Paged pool: 139 MB
Non-paged pool: 57.9 MB

There is plenty of free memory on the host, to the point of being ridiculous (42.8 GB available…)

The memory buffer setting on the VM is set to 20%.

Is this expected behaviour? This condition has persisted for a few hours as we can see from our monitoring graph…

memory graph

Please note that the memory graph shows megabytes of free memory.

Best Answer

Appears to be a known defect:

VMs may not get additional memory although they're set to use Dynamic Memory in Windows Server 2012 R2
https://support.microsoft.com/en-us/kb/3095308