I've been told that the third-party application I need to host on a Windows Server 2022 box needs 3 CPUs with 8 cores but my enterprise cloud provision service (it's in-house at work) specifies computing power in terms of vCPUs.
What's the relationship between a multicore CPU and vCPUs?
vCPU's are an abstraction in virtualisation used for resource allocation. When the VM is running vCPU's are actually mapped to real CPU cores where the virtualisation/time-slicing mechanism hands out real CPU processing capability to the VMs as required.
Generally speaking virtualisation and server consolidation platforms should aim for a workload distribution that allows all guests the resources they need, when they need them. In that case:
1 virtual CPU (assigned to a guest / virtual server) equals 1 CPU core in the hypervisor.
In many cases not all VM's will be running at peak CPU load concurrently nor do they run peak CPU load all the time. That allows a certain level "over provisioning" i.e. assigning more vCPU's to virtual servers than there are cores actually present in the hypervisor.
When that works as intended: 1 virtual CPU core still equals 1 CPU core in the hypervisor when that is the amount of resources the VM needs.
When that doesn't work as intended and the hypervisor is (severely) overloaded ; there will be resource contention, sometimes called CPU steal time, and the virtualization software kicks in. Then instead of the capabilities of a full core a VM will get fewer resources for each vCPU than a whole core.
Note that vendor hardware requirements for their applications are often completely unrealistic IMHO. They are often terribly under or oversized.
The minimum requirements are frequently
Which means
Or
In most virtualisation setups you can easily assign additional resources so assign a reasonable number of resources to your VM initially (not the 3 x 8 cores = 24 vCPU's the vendor requires but a much lower number) and scale up and assign more resources WHEN NEEDED
In the physical world "CPU" most often refers to populated CPU sockets. Three CPUs with eight cores each makes 24 cores.
"vCPU" in the virtual world refers to virtualized CPU cores. You'll need 24 vCPUs to meet the above requirement.