The link is not for QEMU/KVM and some generic boilerplate that isn't helping at all for the distinction of vCPU's and CPU units (a scheduler knob) that the original post asked about, or what does this link answers?
(8 Cores x 16 Threads) x 1 CPU = 128 vCPUs
How would KVM be able to schedule all 100 vCPUs at the same time when there are only 16 actual threads? That's why the number of virtual cores (per socket) is limited to the number of physical threads. If you want your VMs to run smoothly, you should run your VMs with 8 virtual cores or less.For the record, I assigned 100 vCPUs to my VM and it failed to start
Only a maximum of 16 vCPUs allowed on my 8C16T.
AFAIK, for the kernel to schedule a VM to run, it has to wait until the number of vCPU configured in the VM are free, so the host's kernel can schedule all to run at the same time. So for a 4 vCPU VM to run, there has to be 4 hosts CPUs free, otherwise the kernel has to wait to schedule that VM execution. The wait may be very short, of course. This is why I set vCPU a low as possible for all VMs in a host.But yes, it makes no sense whatsoever to have more vCPUs than there are CPU threads available, with that one is just making the scheduler run in cycles and waste CPU power on cycling through the extra cores.
But when there is something to be done, do I only spend 20% resources and let the remaining 80% sit idle?
Yep, probablyvery exotic. Dont know much about this tuff srry. And no, it's not. Its 4 socket 18 core per socket and 2 thread per core. But I'm trying to keep specs simple. The core and the thread count doesn't really matter I don't think.Are you sure its 4 threads per core? That would be pretty exotic.