Why does my desktop box slowdown when I install Hyper-V?

Hyper-V’s primary target is servers.  We love it when you run it on your desktop however you might encounter some challenges.  One such challenge is that once Hyper-V is installed on your desktop box you might find the overall system performance has dropped.

The most common problem users are experience is related to hi-end graphics cards and drivers.  In Windows Vista / Server 2008 we switched from our XP driver model (XDDM) to a new more performant model (WDDM).  The new drivers used non-cached and write-combined memory in order to allow graphics cards to pump lots of data around the system without impact on CPU caches.  This improves overall system performance.

The new model works great on non-virtualized hardware.  On virtual machines the model causes lots of root TLB flushing (Virtual to Physical address translation cache).  It is this constant flushing of the root’s TLB that is slowing down the system.

There are a couple of things you can do today;

  • One is stop using your high end graphics card in your dev box (not likely).
  • You can use VGA.sys as your graphics driver.  If you do this you will loose multi-monitor support and a few cool graphics features like glass. (somewhat likely)
  • Look for an XP driver for your system.  Most XP drivers were not 64bit so this option is a bit limited because Hyper-V requires the root to be 64bit.  (most XP drivers are 32bit – bummer)
  • The **Best Option** is use Win7 (currently in Beta) and upgrade the processors and/or system to one that supports Second Level Address Translation (SLAT) in hardware. 
    • AMD calls this feature “Rapid Virtualization Indexing” and is present on their Phenom and Opteron processors.  In engineering literature it is sometimes called Nested Page Tables (NPT)
    • Intel calls this feature Extended Page Tables (EPT) and is present on their Nehalem based processors.  The marketing name for the Nehalem is the Intel Core i7 for desktops and the Xeon 5500 series for servers.

For addition information on the issue see http://support.microsoft.com/kb/961661