My main virtualization server currently sports a Xeon E5 (12 cores/24 threads) with 64 GB of DDR4-2666 memory. The CPU is water-cooled as is the NVIDIA GTX 1070Ti the host makes available to my VMs.
I’m really excited about what the future has in store for virtualization. I remember back when virtualization imparted a significant performance hit to the underlying virtual machines compared to their bare-metal counterparts. Oh how far we’ve come.
With KVM (and other hypervisors) having closed the gap between virtualization and bare-metal performance to mere percentage points, the largest performance gains will now come from advances in hardware.
Leading the charge at the moment is AMD. Here is what I hope to see from AMD in the near future:
- SMT4 Hyperthreading
- There are rumors circulating that AMD’s Zen 3 generation of CPUs (i.e. the Ryzen 4xxx desktop CPUs) will support 4x hyperthreading. That is, one physical core supporting four threads. This has big implications for us in virtualization as we typically see optimum CPU performance at a utilization of 1 virtual core per thread.
- DDR5 Memory Support
- Ryzen, and indeed all, CPUs benefit from fast RAM. Ryzen is known for being “CPU hungry” for a reason, not in the sense that it “uses” more RAM than its Intel counterparts, that’s determined by the software being run obviously, but in that a Ryzen system benefits disproportionately from faster RAM than an Intel system does. Yes, I know, I’m speaking in gross generalizations here.
- Improved Single Thread Performance
- Single thread performance is especially important for end user experience if you’re running virtual desktops out of your virtualization server. Historically, Intel has held the competitive advantage here mainly thanks to their higher clock speeds. However, the gamechanger that occurred with AMD’s Zen 2 was thanks to their improved clock speeds and increased instructions per clock (IPC). I look forward to seeing AMD continue this trend.
- Continued Advances in Core Count
- Continuing generalizations here, the “amount of VMs” you can run on any given host is determined by the number of cores you have available. Those vCPUs have to ultimately be backed by threads. N.B.: I chose the word threads, implying logical cores as opposed to physical cores, specifically here for a reason. See SMT4 Hyperthreading above.
AMD has already checked off the biggest thing I was looking for before recommending Ryzen for virtualization workloads: True AVX2 (AVX512) instruction support. I look forward to seeing what they can do in the future.
What advances are you looking forward to with your next virtualization server?