Skip to main content

Hyper-V R2 SP1 Dynamic Memory

Until now, you were not able to over allocate RAM to virtual machines running Hyper-V.  You could allocate enough static RAM to a set of VMs that would exceed the total amount of RAM on the server, but you would not be able to start all your virtual machines.

Part of server consolidation is the ability to take servers that are underutilized and move their operations to a single server.  This has worked well however, even when a virtual machine was not taxed to its maximum memory load, it still consumed the same amount of memory and therefor was a hindrance to further consolidation.

Dynamic memory allows you to safely increase the VM density on a server.  This feature requires Windows Server 2008 R2 SP1 and is available on the following guest partitions:
  • Windows Server 2003 Enterprise and Datacenter with SP2 (32 and 64-bit versions)
  • Windows Server 2003 R2 Enterprise and Datacenter with SP2 (32 and 64-bit versions)
  • Windows Server 2008 Enterprise and Datacenter (32 and 64-bit versions)
  • Windows Server 2008 R2 Enterprise and Datacenter (32 and 64-bit versions)
  • Windows Vista Ultimate and Enterprise with SP1 (32 and 64-bit versions)
  • Windows 7 Ultimate and Enterprise  (32 and 64-bit versions)

After installing Windows Server 2008 R2 SP1, I ran a test of the dynamic memory option.  Dynamic memory is not enabled by default.  The screen shot below shows the memory page of a VM on the upgraded server.
image
Two new areas have been added, Dynamic and the Memory weight.

In the Dynamic Memory area, you must first decide on the minimal amount of RAM that is required to start the VM.  The Maximum RAM setting is the upper limit of RAM that you will allocate to this VM.  You cannot use this option to assign more RAM than is physically on the server.  64GB is still the upper limit for a virtual machine. 

The Memory Buffer allows you to specify additional RAM above the current workload requirements.  If it is available, your VM will have additional RAM to work with

The Memory Weight option allows you to establish a pecking order among your VMs to decide who gets additional RAM when the free pool of RAM is depleted.

The Memory Weight and Memory Buffer are the only two memory settings that can be adjusted while a VM is running.  Changing between static and dynamic or adjusting dynamic memory requires the VM to be shut down.

The Hyper-V Manager also has some new columns added to it:
image
The Assigned Memory always starts at the Startup RAM value.  The Memory Demand lets you know how much RAM is actually being used. The VM that is not reporting Memory Demand is configured for static memory.

You also need to install SP1 on your VMs to take fully advantage of Dynamic memory.  Re-installing the integration services will also provide this functionality, but Microsoft recommends that you upgrade all VMs to SP1.

More information can be found by following this link to Microsoft.

Comments

Popular posts from this blog

Adding a Comment to a GPO with PowerShell

As I'm writing this article, I'm also writing a customization for a PowerShell course I'm teaching next week in Phoenix.  This customization deals with Group Policy and PowerShell.  For those of you who attend my classes may already know this, but I sit their and try to ask the questions to myself that others may ask as I present the material.  I finished up my customization a few hours ago and then I realized that I did not add in how to put a comment on a GPO.  This is a feature that many Group Policy Administrators may not be aware of. This past summer I attended a presentation at TechEd on Group Policy.  One organization in the crowd had over 5,000 Group Policies.  In an environment like that, the comment section can be priceless.  I always like to write in the comment section why I created the policy so I know its purpose next week after I've completed 50 other tasks and can't remember what I did 5 minutes ago. In the Group Policy module for PowerShell V3, th

Return duplicate values from a collection with PowerShell

If you have a collection of objects and you want to remove any duplicate items, it is fairly simple. # Create a collection with duplicate values $Set1 = 1 , 1 , 2 , 2 , 3 , 4 , 5 , 6 , 7 , 1 , 2   # Remove the duplicate values. $Set1 | Select-Object -Unique 1 2 3 4 5 6 7 What if you want only the duplicate values and nothing else? # Create a collection with duplicate values $Set1 = 1 , 1 , 2 , 2 , 3 , 4 , 5 , 6 , 7 , 1 , 2   #Create a second collection with duplicate values removed. $Set2 = $Set1 | Select-Object -Unique   # Return only the duplicate values. ( Compare-Object -ReferenceObject $Set2 -DifferenceObject $Set1 ) . InputObject | Select-Object – Unique 1 2 This works with objects as well as numbers.  The first command creates a collection with 2 duplicates of both 1 and 2.   The second command creates another collection with the duplicates filtered out.  The Compare-Object cmdlet will first find items that are diffe

How to list all the AD LDS instances on a server

AD LDS allows you to provide directory services to applications that are free of the confines of Active Directory.  To list all the AD LDS instances on a server, follow this procedure: Log into the server in question Open a command prompt. Type dsdbutil and press Enter Type List Instances and press Enter . You will receive a list of the instance name, both the LDAP and SSL port numbers, the location of the database, and its status.