Recently there was a post in this blog titled “Windows 8 and Hyper-V 3.0 – Inching towards hypervisor supremacy”. One item caught my eye, a mention of the improvements in dynamic memory allocation and smart paging.
In the current edition of Hyper-V, you have the ability to set startup and maximum levels of memory provided a virtual machine and Hyper-V dynamically manages the actual amount used within that range. This turned out to not necessarily be the most efficient way to manage memory.
Hyper-V 3.0 has introduced a minimum memory setting to replace startup memory. Why, you ask? Because there are times when virtual machines require more memory to start than to operate. With those VMs, using the startup memory setting as the minimum inflates the amount needed for operation. How dynamic (and efficient) is that? Not very.
The minimum memory setting introduced in Hyper-V 3.0 allows the virtual machine to run on less memory than it used during start-up. This reclaims memory from the VM after start-up, providing for better overall memory management.
This all sounds great, but there still could be a problem. What if all memory available is allocated and a VM that uses more memory during start-up than while operating needs to be restarted? There is no extra memory to allow the start-up, right? This is where a paging comes in. Hyper-V 3.0 will use second-level paging when necessary, allowing physical disk space to compensate for a memory shortage. Because this will result in a performance hit, Hyper-V will use paging only when needed to accomplish a restart of a VM.
With this improvement in Hyper-V’s dynamic memory feature, the addition of a minimum memory setting and second-level paging, host memory is used more judiciously making it possible to achieve a higher rate of virtual machine consolidation and to take another step on the path toward hypervisor supremacy.