Benchmarks help us compare the performance of different hardware configurations as well as drivers and operating systems. With regard to virtualization, benchmarks can be particularly useful in quantifying performance differences between an operating system running on a virtual machine versus the same OS running directly on the underlying hardware.
In short, benchmarks can show us how well (or how bad) our virtual machine performs, as compared to a “bare metal” installation.
Today I overclocked my 3930K CPU to 4,045 MHz and ran the free UserBenchmarks test inside a Windows 10 virtual machine. Here are the results:
UserBenchmarks: Game 61%, Desk 79%, Work 70%
CPU: Intel Core i7-3930K – 87.5%
GPU: Nvidia GTX 970 – 59.1%
SSD: Red Hat VirtIO 140GB – 87.2%
HDD: Red Hat VirtIO 2TB – 74.6%
HDD: Red Hat VirtIO 2.5TB – 78.8%
RAM: QEMU 20GB – 82.6%
MBD: QEMU Standard PC (Q35 + ICH9, 2009)
CPU: I’m passing all cores and threads to the VM.
GPU: The GTX 970 is performing less than expected, but I need to compare it to other GTX 970 bare metal benchmarks. I may run some Unigine Engine benchmarks to compare.
SSD: I’m using LVM to create logical volumes. Windows 10 was installed on an unformatted logical volume (LV) residing on a 250 GB Samsung EVO 850 SSD. Since I have 3 separate SATA controllers, it would have been easy to pass a SATA controller to Windows, in which case the drive model would be shown instead of “Red Hat VirtIO”. However, I’m getting good performance with LVM and I prefer to not pass a controller to Windows.
HDD: The 2TB HDD is a logical volume on a physical Western Digital 2TB WD20EZRZ Blue drive. The 2.5 TB HDD is a logical volume on a physical HGST 4TB HUS7260 drive.
RAM: Hugepages backed 20GB out of 32GB RAM
MBD: I chose Q35 over the standard PC option in QEMU because I got substantially better disk performance with Q35. This may have been a configuration error on my side, but I see no need to change anything now.
Here some details from CPU-Z (see note below):
Below the CPU-Z CPU benchmark comparing my old i7-3930K to the 2014 top-of-the-line i7-5960X CPU:
And finally a CPU performance comparison with the latest i7-8700K CPU:
Note: Those familiar with virtualization will wonder why CPU-Z shows the overclocked core speed in the CPU tab above. Normally it would only output the nominal clock rate, not the turbo speed. The reason for showing the actual CPU speed is because I used the Asus AI tuner to do automatic overclocking, which increases the base clock. Changing the base clock, as opposed to changing the multiplier, also changes the clock speed of all other components, including PCI bus and DRAM speed. This might explain why CPU-Z is able to read the clock speed within the VM.