How to improve Hyper-V performance
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:
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.
Related videos on Youtube
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, 2022Comments
-
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 about 15 yearsAs 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 about 11 yearsAnd today, 4 years later, a nice SSD really kicks ass in terms of handling multi VM IO load.