Adventures in Benchmarking, Part II

Analysis
Sep 10, 20082 mins

I have now had the time to do some more “scientific” benchmarking of Hyper-V. The results still aren’t 100% valid, because what you really need to do in order to come up with apples-to-apples comparisons is to make sure that 1) both systems you are comparing are identical installs, with (for example) the same apps and patches, and 2) the exact same services are running on both systems.

Considering that I’d have to wipe out my Server 2008 parent system to achieve this goal, I settled for trying to get the list of running services as similar as possible on both parent and child operating systems. Both Parent and Child operating systems were Server 2008, 64-bit version. Here’s a subset of the results, from the SiSoft SANDRA benchmark suite:

PARENT OSCHILD OSProcessor Arithmetic:

Dhrystone                                 16,637 MIPS                 16,593 MIPS

Whetstone                                12,839 MFLOPS            12,214 MFLOPS

File Systems:

Throughput                                42.31 MB/s                   36.82 MB/s

Average Access Time                 10 ms                           14 ms

Clearly, the processor scores are so close as to be nearly indistinguishable. That’s remarkably good performance and suggests that Hyper-V is a good platform for running processor-intensive applications.

The file system performance is not quite so impressive but still a quantum leap better than either Virtual Server 2005 or Virtual PC 2007… 87% of the parent’s throughput is certainly good performance for the child OS, but the average access time still takes quite a hit in the VM. I don’t know how effective periodic defragmenting of the virtual hard drive (either from within the VM or outside it, or both) might be in reducing this performance penalty, but the logic of bottleneck analysis suggests that it might be a smart thing to do.

If you plan to run file-operation-intensive applications on Hyper-V using local storage, I would suggest doing some serious testing in a highly controlled environment to see if my pseudo-scientific results hold up, and set some realistic expectations for the performance you should plan to see.