There is lots of interest in validating Hyper-V performance. You may want to compare Hyper-V to your existing platform (like VMware) and maybe you want to test performance of your newly acquired private cloud infrastructure. Here are some tips and a collection of resources to help you navigate the tasks and avoid some of the most common (but easily avoidable) mistakes.
1. Know your testing objectives…
And be sure to discuss and define the what it is you want to achieve well in advance. Performance and/ or load testing is only of value if you know what condition you are attempting to validate / prove / disprove. Your goal might be VM density testing (how many guests you can run on a Hyper-V host) or performance for a particular workload, but know what your target is.
2. Get a test workload (load simulation) together
You need a way to simulate a workload to generate load and know familiarize yourself with the best practices for virtualizing that workload. For example, if you’re interested in testing virtualized SQL Server performance, you can record a copy of a running workload with SQL Profiler and then replay that workload on your test Hyper-V environment. If you are testing a web application, you might use MS tools like WCAT or Web App Stress Tool. Other simple stress / load testing utilities include Load Storm, SQLIOSim and Prime95.
Make sure you prepare dedicated VM guests to play back / generate the workload!
3. Know what performance counters to watch
If you’re watching the Processor \ % Processor Time counter inside the VM or on the Hyper-V host to measure guest or host performance, you would be looking in the wrong place on both counts. In fact, you have to look at performance counters on the Hyper-V host to fully assess guest performance.
Read up on which counters are important and what thresholds are appropriate…and collect these counters during your tests. For more info, see Cloud: A quick note on accurately measuring Hyper-V host performance and utilization
4. Optimize host and guest configuration
We’re not even talking about absolute optimum host and guest optimizations, just the basics that will ensure you don’t have a major blocking issue between you and acceptable performance
- Latest (and patched) Hyper-V Build – Use the lastest Hyper-V build – currently Windows 2008 R2 SP1 and that build is fully patched.
- Make sure you have hotfix in KB2517329 (out-of-band patch) applied if your server has an Intel Westmere or Sandy Bridge processor
- Latest (and patched) VM guest OS – Make sure guest OSes are latest version and fully patched.
- Integration Components – Make sure the guest and root OS have integration components installed (more info HERE and HERE) ( )
- Guest Network Adapter – Make sure you are using a synthetic “Network Adapter” and not the “Legacy Network Adapter”. The legacy adapter uses emulation which creates additional CPU overhead.
- Storage – For best performance, use SCSI-attached pass-through or fixed disks . For more info on storage see
- Follow these tips for avoiding pitfalls http://blogs.msdn.com/tvoellm/archive/2008/04/19/hyper-v-how-to-make-sure-you-are-getting-the-best-performance-when-doing-performance-comparisons.aspx
Here are a few additional resources related to Microsoft virtualization and private cloud you may find interesting.
- Great info on Hyper-V Dynamic Memory and Virtualizing SQL Workloads
- Hyper-V Network Optimizations and Best Practices [Private Cloud]
- A look into Servicing Windows in Virtual Machine Manager 2012 (via PowerShell)
- Configuring PRO integration between OpsMgr 2012 and VMM 2012
- [Private Cloud]: Configuring anti-affinity between VMs on Hyper-V 2008 R2 SP1 and VMM 2012
- Implementing rapid scale-out of a machine tier in VMM 2012 via PowerShell
- Cloud: A quick note on accurately measuring Hyper-V host performance and utilization
- What’s new in the Cloud Services Process Pack (CSPP) Release Candidate for System Center 2012?
- Private Cloud in the real world: 5 lessons from the private cloud fabric
- How to prepare for Orchestrator? Learn Opalis in a month of Friday afternoons! (free online resources)
- PowerShell Scripts for System Center (Master Collection)