This is yet another benchmark of my Windows 10 VM. This time I used the free Mersenne Prime Search software Prime95 (mprime under Linux) available at www.mersenne.org. I wanted to see if there is a significant difference between running the benchmark on the Linux host, versus the Windows virtual machine.
Caveat: Some may argue that this is comparing apples with pears. Although mprime and Prime95 are based on the same code, they are compiled on different compilers and run on different OS platforms. In order to compare the performance impact of virtualization, I would have to install Windows 10 on my hardware (e.g. on a separate drive), run the Prime95 benchmark, and compare the results with the results obtained in the Windows 10 VM.
However, the comparison below should give some indication on how much kvm virtualization impacts performance.
First my hardware specs:
- CPU: Intel i7 3930K (6 cores, 12 threads) overclocked to 4.2 GHz
- RAM: Kingston 8*4 GByte @1,600 MHz quad channel; Windows VM – 20 GByte; Linux host – 10 GByte
- M/B: Asus Sabertooth X79, BIOS rel. 4801
Below are the Prime95 benchmark settings:
Here the results from the Prime95/mprime Throughput benchmark (shortened):
|FFT length||Cores / Workers||Throughput on Linux host||Throughput on Windows 10 VM||Diff.|
|1792K||6 cores, 1 worker||577.04 iter/sec||466.96 iter/sec||-19.08%|
|1792K||6 cores, 6 workers||544.83 iter/sec||478.06 iter/sec||-12.26%|
|1792K||6 cores hyperthreaded, 1 worker||517.13 iter/sec||484.03 iter/sec||-6.40%|
|1792K||6 cores hyperthreaded, 6 workers||525.87 iter/sec||515.80 iter/sec||-1.91%|
|2048K||6 cores, 1 worker||474.99 iter/sec||430.29 iter/sec||-9.41%|
|2048K||6 cores, 6 workers||468.39 iter/sec||416.00 iter/sec||-11.19%|
|2048K||6 cores hyperthreaded, 1 worker||413.52 iter/sec||386.45 iter/sec||-6.55%|
|2048K||6 cores hyperthreaded, 6 workers||428.90 iter/sec||427.77 iter/sec||-0.26%|
|3072K||6 cores, 1 worker||322.36 iter/sec||290.39 iter/sec||-9.92%|
|3072K||6 cores, 6 workers||318.98 iter/sec||271.51 iter/sec||-14.88%|
|3072K||6 cores hyperthreaded, 1 worker||278.02 iter/sec||231.28 iter/sec||-16.81%|
|3072K||6 cores hyperthreaded, 6 workers||274.04 iter/sec||266.84 iter/sec||-2.63%|
|4096K||6 cores, 1 worker||206.43 iter/sec||193.18 iter/sec||-6.42%|
|4096K||6 cores, 6 workers||220.38 iter/sec||193.67 iter/sec||-12.12%|
|4096K||6 cores hyperthreaded, 1 worker||191.68 iter/sec||186.71 iter/sec||-2.59%|
|4096K||6 cores hyperthreaded, 6 workers||210.46 iter/sec||206.66 iter/sec||-1.81%|
The table above shows the number of iterations per second as a throughput measurement – the higher the better. Obviously this number decreases with the increasing FFT size (Fast Fourier Transforms). The average Prime95 throughput benchmark difference between the Windows VM and the Linux host is -8.39%.
This is NOT a scientific test of the kvm hypervisor performance (see caveat above), but it does give an indication on how well (or not) the VM performs. It is clear that the VM does trigger the CPU governor to ramp up the CPU clock, else the difference would be much bigger. This can be also seen in the screenshot below that was taken on the Linux host while the Windows VM ran the Prime95 benchmark:
The CPU is maxed out at 4.2 GHz.