Beginner's Virtualization Server Hardware Recommendations

I see a lot of posts on Reddit asking for help spec’ing out their first virtualization server. It’s a good question and with Cyber Monday coming up, I thought I should record my original response to one of these threads that others found useful on r/homelab in case others find it useful:

Without knowing more about your specific use-cases, general suggestions I have are:

-If you go Intel, ensure that the CPU implements VT-x and VT-d. VT-d is essential for PCI passthrough which you’ll need if you want to do GPU passthrough to allow you to create a remote gaming rig or do any kind of machine learning work (or hardware encoding with Handbrake on a VM).

-If you go AMD, you want to make sure it’s IOMMU-enabled. (AMD’s implementation of VT-d above).

-32 GB RAM minimum. The great thing about Proxmox (and really any virtualization server) is that you can overcommit resources if you do it intelligently. Let’s say you’re running a pair of web servers, an NGINX reverse proxy and a backend content server- you’d like for them to have the ability to use 8 GB, but it’s unlikely they’ll both need all 8GB at once, they’ll more likely use just 1 GB. With Proxmox, you can give them access to 8 GB each, but they’ll release the RAM to the host if they don’t need it and just use the 1GB (this is known as ballooning). Additionally, one of the really nice features of Red Hat’s KVM, which Proxmox uses, is that if you’re running similar types of VMs (a good example being the web server pair above both running Ubuntu), the host will attempt to intelligently share that memory between the two VMs, allowing for even more memory savings. This is known as KSM sharing.

  • Don’t go micro, if you can avoid it. It limits you.

  • NVME-enabled motherboard is nice to have. Chances are, you’re probably going to be running everything off one drive initially, best make it an NVME one.

I run a 24-core Xeon. If I were just starting off, like you are and with the market as it currently is, I would say you want a minimum of 8 true cores/16 threads, but don’t blindly buy a CPU just because it meets those standards. Pay attention to benchmarks. There are a lot of cheap, old Xeons that meet that spec but are garbage by today’s standards. Again, I don’t know your situation or specifics, but assuming you’re on a budget, I’d probably look to an AMD Ryzen 7 2700X or maybe one of the new Zen 2 CPUs (again, minimum 8/16 cores for when you want to do more). Pay attention to Black Friday sales. I’d probably bite at a Newegg Black Friday/Cyber Monday motherboard + CPU combo.

Hope that helps and at least gives you a starting point. I also have a series of tutorials/guides on my blog that will help you get started with your new virtualization server/homelab. Let me know if you’re interested.

What kind of hardware are yall running your virtualization servers on?

Update: I no longer recommend Zen1 or Zen1+ CPUs, given that better alternatives (Zen2 and soon Zen3) now exist. Zen1+ CPUs (like the Ryzen 2700x), while great, lacked a fundamental instruction set I find that I use quite often in my workloads, AVX2. Yes, they technically supported them, but Zen1+ had to split them into two instructions across two cycles = large computational performance hit.

AMD Zen 2 Microarchitecture Analysis: Ryzen 3000 and EPYC Rome