Article -> Operations

Hyper-V R2 dynamic memory requirements


Finally Service Pack 1 is upon us and with it comes dynamic memory for Hyper-V hosts, including the free and standalone Hyper-V Server R2 which we also run in our labs. Even being late to the game Microsoft's implementation still requires that the guest supports hot-add memory.

Installing the service pack is a walk in the sunniest park this year but getting all the virtual Windows machines to use dynamic memory is a completely different flowery beast altogether. The Windows version and edition makes a big difference in how annoying this is to accomplish, so here's the guest requirement breakdown:

  • Server 2003, all editions
    • Upgrade Integration Services
  • Server 2008, web and standard edition (SP2)
  • Server 2008, enterprise and datacenter edition (SP2)
    • Upgrade Integration Services
  • Server 2008 R2, web and standard edition
    • Apply Service Pack 1 (mandatory)
    • Upgrade Integration Services
  • Server 2008 R2, enterprise and datacenter edition
    • Apply Service Pack 1 (optional)
    • Upgrade Integration Services

In short, one of the most likely platforms currently running (Server 2008 Standard) requires a special hotfix from Microsoft, apart from the new Integration Services.

We also have a problem with a Server 2003 Enterprise ISA running the non-SP1 R2 Integration Services. Simply upgrading the services won't enable dynamic memory, and by popular opinion uninstalling the old version first and rebooting, then installing the new services, leaves it hanging at text boot forever. A brand new 2003 guest without previous versions of the services doesn't seem to have this problem. We'll update the article as soon as we know more about this.

Impact on a sample host

In any case, even in a lab environment, dynamic memory helps a lot in making use of all resources. This example host has only 8 GB of memory and is running a small Active Directory forest with Exchange and half a dozen other typical services - barely fitting into the memory footprint for idling.

Hyper-V console - New memory columns

After activating dynamic memory and tuning the parameters a bit, most memory-hungry servers use up a lot less host memory during normal near-idle activity and the by choice memory-starved servers like core Domain Controllers got the extra memory they actually wanted for optimal performance when needed.

The Memory Status column doesn't seem to reflect any reality that corresponds to Microsoft's current documentation as we would get occasional Warning statuses even when there was plenty of free physical memory and the guest in question was near its minimum allocation rather than its max. The Low status should indicate that the adjustable buffer size is too low - which isn't exactly a logical status but that's supposedly its meaning so we'll go with that.

Here's a short list for the lab, which obviously won't apply to production and heavily utilized environments:

  • Server 2008 Core x86 - domain controllers
    • Before: 384 MB fixed
    • After: 256-2048 MB dynamic
    • Using: 347 MB
  • Server 2008 Core x86 - file servers
    • Before 384 MB fixed
    • After: 256-2048 MB dynamic
    • Using: 250 MB
  • Server 2008 x64 - IIS application servers
    • Before: 1024 MB fixed
    • After: 512-2048 MB dynamic
    • Using: 641 MB
  • Server 2008 x64 - Certificate Authority
    • Before: 384 MB fixed
    • After: 256-2048 MB dynamic
    • Using: 474 MB
  • Server 2008 x64 - MSSQL low but load
    • Before: 1536 MB fixed
    • After: 256-2048 MB dynamic
    • Using: 504 MB


As in any lab we want everything to hog as little resources as possible without being sluggish. Seeing servers hog a lot less memory than before while stille responding ok on service calls is neat in itself. But the awesome part is when they grab a bunch of extra memory and become fully responsive during interactive maintenance and then release it back when done. That is rather helpful indeed.

In short, this makes it possible to experiment with additional lab servers without having to resort to another physical host or memory upgrade. We can't wait to try this out in a decently loaded test system.

by Oskar Duveborn - 9 revisions
Published 2011-04-11, updated 2011-04-11