VMware Communities
Hedgehog2
Contributor
Contributor
Jump to solution

Windows 11 guest with half the number of processors

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?

0 Kudos
1 Solution

Accepted Solutions
bluefirestorm
Champion
Champion
Jump to solution

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.

 

View solution in original post

0 Kudos
11 Replies
ajgringo619
Hot Shot
Hot Shot
Jump to solution

Here's how my Windows 11 VM is setup (using 1 processor, 8 cores per processor):

win11-vm-vcpus.png

This is how I've setup all of my VMs - Windows, Linux, BSD - and it's always worked.

0 Kudos
Hedgehog2
Contributor
Contributor
Jump to solution

Thank you, but in VMWare Workstation Player for Windows I don't have the possibility to set the number of cores per processor.

0 Kudos
Hedgehog2
Contributor
Contributor
Jump to solution

I found it: I added the 2nd line into the vmx file:

numvcpus = "4"
cpuid.coresPerSocket = "4"

 

0 Kudos
ajgringo619
Hot Shot
Hot Shot
Jump to solution

Did not know that; thanks for the info.
0 Kudos
Mikero
Community Manager
Community Manager
Jump to solution

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.

 

-
Michael Roy - Product Marketing Engineer: VCF
Hedgehog2
Contributor
Contributor
Jump to solution


@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.

 

0 Kudos
bluefirestorm
Champion
Champion
Jump to solution

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.

 

0 Kudos
Hedgehog2
Contributor
Contributor
Jump to solution

Thank you for the explanation. This is in line with my observations.

0 Kudos
Hedgehog2
Contributor
Contributor
Jump to solution


@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.

0 Kudos
RDPetruska
Leadership
Leadership
Jump to solution

So it sounds like you have Windows 10 Home Edition, which only supports 1 socket, as mentioned earlier in the thread.

0 Kudos
Hedgehog2
Contributor
Contributor
Jump to solution

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.

0 Kudos