Technical

Proxmox Cores vs Sockets: What the vCPU Settings Mean

Proxmox Cores vs Sockets: What the vCPU Settings Mean

Proxmox cores vs sockets is one of those settings that looks simple but trips people up. The short version: it doesn’t change performance, it changes how the guest sees its CPU topology. Here’s what actually matters.

Old motherboard featuring an Intel i486 processor, showcasing retro computer technology.

The setting does nothing to performance

In Proxmox, when you create a VM, you get two fields: Cores and Sockets. Multiply them and you get the total vCPUs. A VM with 2 sockets and 4 cores each has 8 vCPUs. Same as 1 socket and 8 cores. Same as 4 sockets and 2 cores. The hypervisor doesn’t care. It’s all just vCPUs scheduled on the host’s physical cores.

So why does the UI even have both? Because some operating systems, especially older Windows versions, had licensing or support limits on sockets. Windows 10 Pro, for example, supports up to 2 sockets. Windows Server editions have their own limits. If you gave a Windows 10 VM 4 sockets, it might only use 2 of them. That’s the main reason to mess with this.

Linux guests don’t care

Linux sees the topology and uses it, but it doesn’t affect scheduling or performance in any meaningful way. You can check with lscpu inside the guest:

lscpu | grep -E 'Socket|Core|Thread'

It’ll show whatever you set. But unless you have a specific reason, just leave it at 1 socket and however many cores you need. It’s simpler.

Detailed close-up image of a vintage motherboard showcasing microprocessor and components.

Windows guests: watch the socket count

Windows is pickier. If you set more sockets than the edition supports, it’ll ignore the extra ones. For Windows 10/11 Pro, that’s 2 sockets. For Home, it’s 1. So if you need 8 vCPUs on Windows 10 Home, you have to do 1 socket with 8 cores, not 2 sockets with 4 cores each. The VM will boot, but it’ll only see 4 vCPUs. Annoying, and easy to miss if you don’t check Task Manager.

There’s also the NUMA thing. If your host has multiple physical CPUs, Proxmox can expose NUMA topology to the guest. But that’s a separate setting, and for most homelab stuff you don’t need to touch it.

What I’d do

Unless you’re dealing with a Windows edition that limits sockets, just set 1 socket and put all your cores there. It avoids the whole mess. If you need to match a specific topology for licensing or an app that’s picky, then adjust. Otherwise, don’t overthink it.

And if you’re cloning VMs and they end up with weird CPU settings, check out this post on cloned VM DHCP issues — different problem, but same kind of template weirdness.

Leave a comment

Comments are reviewed before they appear. Your email is never published.