The BIG excitement for me in the Server 2008 R2 space is getting Dynamic Memory enabled on my Hyper-V servers. From TechNet:
Dynamic Memory is a new Hyper-V feature that helps you use physical memory more efficiently. With Dynamic Memory, Hyper-V treats memory as a shared resource that can be reallocated automatically among running virtual machines. Dynamic Memory adjusts the amount of memory available to a virtual machine, based on changes in memory demand and values that you specify.
Essentially, instead of allocating a fixed memory amount, I can provide a dynamic range of memory with an upper and lower limit, and let the guest operating system inform the Hypervisor of how much memory it really needs. This can potentially allow you to run more virtual machines, as you will consume actual memory resources much more efficiently.
I am going to talk through an example of the impact this has for me below.
My biggest Hyper-V server has 32GB of RAM. I currently spin 19 VM’s on this box, and consume ~30 GB of physical memory.
This is all pre-SP1 and without dynamic memory.
Once I apply SP1 to the Host, and then update the guest VM’s Hyper-V integration components, I can enable dynamic memory and utilize this new feature for supported operating systems.
**Note – follow the guide on TechNet for the requirements, Windows Server 2008 Standard requires a hotfix applied as well to make use of dynamic memory. Also, if you have Windows 2003 VM’s that were originally hosted on Hyper-V 2008 RTM, then migrated to 2008 R2 Hyper-V, I had to uninstall all the Hyper-V integration components and install a clean SP1 version to get dynamic memory working.
The application of SP1 takes me, on average, ~45-60 minutes to complete on a server.
After that is complete, I can upgrade the Hyper-V Integration components on each guest VM to the SP1 version, or if the guest VM is Windows Server 2008 R2, simply apply SP1 to the guest, which will automatically update the Integration components:
Once the integration components are in place, I can assign dynamic memory settings, either via SCVMM 2008 R2 SP1 (when released) or directly via Hyper-V:
The result is a new set of columns in Hyper-V showing me the assigned memory, and the memory demand.
The net result of total memory demand changed from my previous value of 29.8GB to 22GB:
That is 8GB of memory freed up on the host, or a 27% decrease in memory utilization. Since my average memory consumption per VM in my lab is around 1.2GB, that allows for at least 6 more VM’s on this server, which is a 30% increase in density. That is significant!