Thursday, March 3, 2011

Performance Testing Hyper-V

I’ve been reading up on everything Hyper-V, but I’m still very curious as to the specific performance characteristics of different configurations. Specifically (at this stage) I want to know if there is a sweet spot for RAM, and the effect of adding more virtual processors to the guest. I’ll use this information to make better choices when it comes to selecting VM configurations for my SharePoint farm (or whatever else I happen to feel like playing around with)
I’d also like to form a solid baseline for comparison if I make hardware changes etc.

I hopped on to Bing and found the PassMark Performance Test software. It looks like it does everything I need, so I decide to give it a go.

My testing methodology is to spin up each configuration and run the test 4 times. Reboot and run it another 4. I’ll disregard the highest and lowest total score, and average the remaining 4. I’ll run this over a range of configurations and compare the results. I’ll also compare the results to a “max theoretical score”, which is obtained from running the tests on the host machine.
At this stage I am not going to work out standard deviations or significant difference, however, depending on the ‘logic’ of the results I get, I might do this in the future.

I have scripted the test to only run CPU, memory and disk benchmarks (thanks to this forum post - http://www.passmark.com/forum/showthread.php?t=1701). I don’t have a graphics card installed, and I’m not sure that would be valid in an RDP window anyway…
I will dedicate a particular VM to this task, which I will use for nothing else. I plan to revisit the testing a number of times (it would take too long to do all the test I want to do in one go).

I ran tests on the host and 2 different CPU configs for a guest. I was planning to do 1, 2, 3 and 4 CPU configurations, but after doing 1 and 4 – it didn’t seems worth continuing. There was no real difference…

  Host Guest 1 Guest 2
CPU Mark 5523.3 1013.78333 1031.36667
Memory Mark 2109.1 814.266667 767.4
Disk Mark 908.183333 7131.95 6100.25
PassMark Rating 2448.1 826.8 827.583333

image

Host = Phenom x6, 16GB RAM, included reference
Guest 1 = 4 virtual CPU, 4GB static RAM Hyper-V guest
Guest 2 = 1 virtual CPU, 4GB static RAM Hyper-V guest
Value in graph expressed as % vs host result.

My conclusion – either the way Hyper-V schedules CPU time means that there is no difference when the VM load does not tax the host, or my testing software is flawed in a VM. I’m going to need to do some reading, and perhaps retest with multiple VMs at once (say, 3 VMs of the same config running the tests simultaneously).