What is Microsoft's Hyper-V Dynamic Memory, and what role does its Smart Paging feature play when a virtual machine is rebooted?
To maximize the return on their hardware investment, organizations often try to maximize each host server's virtual machine (VM) density. One way to do this is to use Hyper-V's Dynamic Memory allocation.
The basic idea behind the Dynamic Memory allocation feature is that statically allocating memory is wasteful. A VM may not always need the full amount of memory allocated to it. In these situations, the VM consumes physical RAM that could otherwise be used by another VM. Dynamic Memory helps to solve this problem by allowing the hypervisor to control physical memory allocation based on a VM's current needs.
An administrator can use three main settings when provisioning a VM to use Dynamic Memory: minimum memory, maximum memory and startup memory. There also are various other threshold-related settings, but those settings are irrelevant to this discussion.
The startup memory setting was introduced more recently than the minimum and maximum memory settings. This setting exists because sometimes a VM requires more memory to start up than it requires to function. For instance, a VM might require 1 GB of RAM to boot, but need only 512 MB of RAM to function once the boot process is complete. If this is the case, Hyper-V can release physical memory used by the boot process so that it's available to other VMs.
However, differentiating between startup memory and minimum memory can cause a problem. Imagine what would happen if a VM running with the minimum possible memory was rebooted. Upon reboot, it would require the amount of memory specified by the startup memory value, which is likely to be higher than the amount of memory that was previously being used. On a host server with a high VM density, the memory required to boot the VM may not be available. This is where Smart Paging comes into play.
Smart Paging uses physical storage to make up for shortcomings in available physical RAM. A paging file is used during the boot process, but once the VM is able to release the memory required for boot, it should be able to abandon its use of a paging file and use only the physical memory it had been using prior to the reboot.
So, how should storage administrators plan for Smart Paging? Windows Server 2012 contains a Smart Paging File Location setting for each VM. By default, the VM stores the Smart Paging file in the same location as its other components (such as snapshots and configuration files). At a minimum, storage administrators need to ensure that the volume used to store VM components has adequate space to also accommodate Smart Paging files.
Under normal circumstances, Smart Paging is used sparingly, so you probably won't need a huge amount of disk space. However, organizations with extremely high VM densities are much more likely to trigger the Smart Paging feature upon rebooting a VM. For these organizations, it's a good idea to dedicate a solid-state drive on the host server solely to the Smart Paging process. Doing so will help to ensure that VMs can boot in an efficient manner, even when physical memory is in short supply.
About the expert: Brien Posey is a Microsoft MVP with two decades of IT experience. Before becoming a freelance technical writer, Brien worked as a CIO for a national chain of hospitals and health care facilities. He has also served as a network administrator for some of the nation's largest insurance companies and for the Department of Defense at Fort Knox.
Dig Deeper on Data storage management
Related Q&A from Brien Posey
The backup-as-a-service platform is a popular use of cloud-based infrastructure. With new products and features launching, it's important to plan out... Continue Reading
IT pros must understand that their desktops' upgrade method, workload and other factors affect whether the Windows 10 system requirements are ... Continue Reading
With container storage a major trend, it's important to ensure data protection. These five guidelines will help you properly back up Docker ... Continue Reading