How to improve Hyper-V performance

6,896

Solution 1

I've found that the disk is usually the biggest bottleneck for our virtual machines. Especially if you're doing continuous integration across multiple VMs, you'll be doing a lot of reading and writing. If all the CI processes start at the same time, the problem is compounded.

The quickest way to get better performance may be to add physical drives and distribute your VMs across those drives.

Another way to get better performance would be a large RAID5 array. We've seen amazing performance in large VM clusters when you have lots of drives to spread the data across.

Solution 2

From my experience, disk I/O is the largest bottleneck. After much experimentation, here's what we settled on for our standard Hyper-V server:

  • Dell PowerEdge 2970
  • Dual quad-core AMD procs
  • 16GB RAM
  • 8 x 146GB SAS 15,000 drives in RAID 10
  • Cost after discounts: $3000

We're able to comfortably run 6-10 guests on each box, doing similar things (CI, dev servers, load testing, etc).

Solution 3

Along with being one of the best features of a virtualized environment, snapshots have a significant performance impact (as do dynamically expanding disks). There is a good discussion of these issues here:

http://blogs.msdn.com/virtual_pc_guy/archive/2009/04/23/should-virtual-machine-snapshots-be-used-in-production-hyper-v.aspx

If performance is critical, you can use fixed disks with no snapshots and use VSS for backups instead. If you prefer to use snapshots, make sure they are on your fast disks.

Solution 4

You also might want to upgrade to the RTM version. I'm not sure how much changed between RC2 and SP1, but that might help a little as well. As a_hardin said, the disk are probably the biggest point of contention.

Share:
6,896

Related videos on Youtube

Dror Helper
Author by

Dror Helper

Senior consultant with Extensive knowledge of C++, assembly, various .NET languages (c#, VB.NET) and Java. blog: blog.drorhelper.com I'm also a Pluralsight Author

Updated on September 17, 2022

Comments

  • Dror Helper
    Dror Helper almost 2 years

    I have a windows 2008 (RC2) server running Hyper-V with all of my company's virtual machines.

    Most of the machines are used to run Continues integration and test environment.

    Although each machine has 1-2GB of memory and enough disk space they run really slow!

    I've tried installing the "integration disk" and porting the VMs to different disk but it didn't help.

    Am I'm missing something? what can I do to improve the overall performance of the VMs?

    • a_hardin
      a_hardin about 15 years
      As a side note, if you're working with your VMs a lot in Hyper-V, you may want to try out Microsoft's Virtual Machine Manager. It makes creating VMs and moving them between drives/servers a lot easier.
  • TomTom
    TomTom about 11 years
    And today, 4 years later, a nice SSD really kicks ass in terms of handling multi VM IO load.