What is “Memory Availability”? (as reported by Dynamic Memory)

When you use dynamic memory with Hyper-V one of the obvious changes to the user interface is the addition of the “Memory Availability” column:

This is actually a really useful figure to have handy. What memory available represents is the ratio of how much memory a virtual machine has – compared to how much memory the virtual machine needs. For example:

If a virtual machine had 1000MB of memory – but only needed 900MB of memory we would report a memory available figure of 11%, because the virtual machine has 11% more memory than it actually needs.

Because the workload inside a virtual machine is constantly changing, and we are constantly moving memory around in response to these changes, you can expect the memory available figure for your virtual machines to keep on moving as the virtual machine is running as well. It is also possible for a virtual machine to report a negative figure for memory available:

What this means is that the virtual machine has less memory than it needs. Note that in this case the virtual machine is still running – but it is likely that the guest operating system is now needing to page heavily in order to make forward progress.

You should always keep an eye on the memory availability of your system. As a general rule of thumb you want to see this value at the level of your configured memory buffer (which is 20% by default). Once you see this value start to dip under 10% that is a good warning that you should not be starting new virtual machines. If this value starts to get close to 0% (or even into the negatives) you should really think about stopping some virtual machines or migrating them to another server.