Microsoft designed its Hyper-V Dynamic Memory feature to improve virtual memory management, but it can also aid your server consolidation plan by optimizing host ratios.
Hyper-V Dynamic Memory allows for dynamic virtual memory allocation, which eliminates the need to statically assign memory to virtual machines (VMs). And this new flexibility can do wonders for your server consolidation plan.
The problem with static virtual memory allocation
If you allocate correctly, statically assigning that value works well. If you know that your VM needs 1 GB of RAM rather than 2 GB, and you configure it that way, your host’s virtual memory management techniques can start on even ground. But assigning that value correctly is terrifically difficult unless you’re skilled at analyzing performance counters.
When Hyper-V Dynamic Memory is enabled on a VM, the VM immediately asserts how much memory it needs. The host then provides the quantity the VM requests, along with an extra amount as a buffer. And if multiple VMs run on a host, the host automatically balances memory among all VMs.
Prior to Hyper-V Dynamic Memory, VMs on the same host reserved their entire amount of allocated memory at boot, regardless of how much they actually used. But configuring a virtualized domain controller with 2 GB of memory when it needs only 1 GB means you’re wasting valuable resources. That’s not good for your server consolidation plan.
Memory allocation meets server consolidation
With Hyper-V Dynamic Memory, VMs always get the exact amount of memory they need, so you can consolidate more VMs onto hardware. No longer are consolidation ratios limited by static assignments and memory reservations. Instead, your server consolidation plan is limited only by the memory each VM actually needs.
That said, some VMs take every bit of memory they can find. Some SQL databases, for example,
take all the memory they can safely consume to load more of the database into RAM. This behavior
speeds database processing and isn’t necessarily bad in a statically assigned world. But
overconsumption can absolutely be a problem for dynamic virtual memory allocation.
Memory-hungry applications require a whole new approach to virtual memory management that IT pros (and their vendors) are only now discovering. This approach recognizes that limiting memory consumption is best accomplished at the application level.
With an overeager SQL database, for example, you can use Hyper-V Dynamic Memory’s maximum RAM setting to limit the VM’s memory. Using these virtual memory settings to throttle memory at the application level will result in the best performance, but it’s also possible to limit consumption at the SQL database.
In the end, Hyper-V Dynamic Memory will improve your server consolidation by eliminating a lot of statically wasted RAM. Converting virtual memory allocation from a static process to one that’s automatic can significantly improve the life of the IT administrator.
This was first published in April 2011