Since a few days I have the problem that in the Windows 11 guest system only 2 instead of the specified 4 processors are used. My notebook has 4 cores and 8 logical processors. 4 of them are assigned to the VM running Windows 11. However, in the Windows 11 task manager only 2 logical processors are available. The Windows 11 system information lists 2 processors with 1 core each. However, the Windows 11 device manager shows 4. In the VM with Windows 10, the system information lists 1 processor with 4 cores. Host is Windows 8.1. (See pictures) What can be the cause of this problem?
Hedgehog2,
number of virtual sockets = numvcpus / cpuid.coresPerSocket
The number of virtual sockets recognised depends on the guest OS. Windows 10/11 Home Edition can only recognise 1, Professional can recognise 2, Enterprise can recognise 4 (just like physical PCs). So a VM should not be configured with virtual socket count beyond what the guest OS can recognise (e.g. if >= 2 virtual sockets are configured for Windows 10 Home, only 1 is recognised and the rest are ignored).
Assuming numvcpus values are equal, there is no performance difference for the VM to have more virtual cores over more virtual sockets or vice-versa.
Here's how my Windows 11 VM is setup (using 1 processor, 8 cores per processor):
This is how I've setup all of my VMs - Windows, Linux, BSD - and it's always worked.
Thank you, but in VMWare Workstation Player for Windows I don't have the possibility to set the number of cores per processor.
I found it: I added the 2nd line into the vmx file:
numvcpus = "4"
cpuid.coresPerSocket = "4"
That will add 16 cores to the VM.
4 cores "per socket" x 4 vcpus (aka Sockets)
You want 1 vCPU with 4 cores per socket if you want to give 4 cores to the VM.
@Mikero wrote:That will add 16 cores to the VM.
4 cores "per socket" x 4 vcpus (aka Sockets)
You want 1 vCPU with 4 cores per socket if you want to give 4 cores to the VM.
No. I didn't edit the vmx file for Windows 10 guest. There I have 4 processors and the entrties are:
numvcpus = "4"
cpuid.coresPerSocket = "4"
I set the entries in vmx file for Windows 11 to the same values and I have 4 logical processors and 1 CPU.
I tried to set cpuid.coresPerSocket = "1", but then I have only 2 logical processors.
Then I tried to set numvcpus = "1", but then the setting window for the VM tells that I set only 1 processor for the VM. So I didn't start this VM and reset numvcpus to 4.
Hedgehog2,
number of virtual sockets = numvcpus / cpuid.coresPerSocket
The number of virtual sockets recognised depends on the guest OS. Windows 10/11 Home Edition can only recognise 1, Professional can recognise 2, Enterprise can recognise 4 (just like physical PCs). So a VM should not be configured with virtual socket count beyond what the guest OS can recognise (e.g. if >= 2 virtual sockets are configured for Windows 10 Home, only 1 is recognised and the rest are ignored).
Assuming numvcpus values are equal, there is no performance difference for the VM to have more virtual cores over more virtual sockets or vice-versa.
Thank you for the explanation. This is in line with my observations.
@Mikero wrote:That will add 16 cores to the VM.
4 cores "per socket" x 4 vcpus (aka Sockets)
You want 1 vCPU with 4 cores per socket if you want to give 4 cores to the VM.
I set the following values:
numvcpus = "2"
cpuid.coresPerSocket = "2"
But then I have only 1 socket with 1 CPU with 2 logical processors. So setting both to 4 is the right one.
So it sounds like you have Windows 10 Home Edition, which only supports 1 socket, as mentioned earlier in the thread.
No. I set these both entries to 2 for the VM with Windows 11.
As bluefirestorm already wrote, we have always 1 socket, if numvcpus and cpuid.coresPerSocket are set to the same value. In my original post you can see in the pictures regarding Windows 11 that I had 2 sockets each with 1 logical processor.
Host: Windows 8.1 Home
Guest 1: Windows 10 Pro
Guest 2: Windows 11 Pro
In both VMs I set numvcpus and cpuid.coresPerSocket to 4. So I have in each VM 1 socket with 4 logical processors.