I'm configuring software that will need about 12 cores to run, but I am running it on a vSphere virtual machine, meaning that at most 8 (virtual) cores can be configured.[1] The physical machine that this will be running on has 24 cores available, and hosts only one other virtual machine. That VM has 8 cores allocated as well.
Since my machine has 8 cores, and the other machine has 8 cores, this means that 8 cores seem to be left completely idle. This seems wrong.
I'm guessing that VMWare has done something clever -- That even though I can only have 8 cores allocated to my machine, in reality, if there are 24 cores on the back end, then I am guaranteed to get 8 of them, but can use 24 of them if no other machine is using them.
I've been reading about co-sharing in vSphere,[2] but it's a bit over my head.
Can anybody explain how this works?
Edit: This is the explanation I've been given about the 8 CPU limit, but I need to confirm it.
vSphere uses dynamic processor load balancing that allows each assigned core in a guest access to all cores on the host. While the guest OS will only see 8 physical processors, each processor has access to a pool of 24 cores. This is very similar to how a mainframe works.
This hints at the 8 cores behaving more like 24 cores, but now this just seems wrong. Is it?
References: