Sockets vs Cores vs vCPUs

Muhammad.Hesham

New Member
Aug 31, 2025
1
0
1
Hello,

I'm a little bit confused when it comes to the terms Sockets, Cores, vCPUs in Proxmox. I checked older forums but they only helped confuse me more xD

So as far as I understand Socket defines the number of processors I have (For example: 2x AMD Ryzen™ 5 PRO 3600 means I have 2 sockets), Cores defines the number of threads not the number of physical cores (so in Proxmox I can assign up to 12 cores to a VM not just 6 in case of 1x AMD Ryzen™ 5 PRO 3600) and vCPU is the result of the multiplication of the Sockets by the Cores (For example: If I assign 2 sockets and 2 c.

Did I get that right or am I misunderstanding something?
 
Quiet ok but as sockets for virtual machines even use virtual sockets performance is always better if you select at creation time just 1 socket and a number of cores to your wish (but not to much as it doesn't is really useful and better for the virt host to serve the vm's, same for memory).
 
My typical approach is to always set sockets = 1 and Cores = X (whatever I want but always less than or equal to the core count of 1 CPU. If you schedule more resources than that single CPU, you take a hit on performance because of the NUMA scheduling between the CPUs. Similarly for RAM, it will be managed by both CPUs so 50% for 1 CPU and 50% for the other and assign VM RAM accordingly (again, I try to avoid the performance hit for cross CPU scheduling). I let the CPU scheduling take care of the rest.