I have a VMWare ESXi 4.0 server that I upgraded to 4.1 (now titled VMWare vSphere Hypervisor it seems), and I am trying to get vCPUs to show up to the OS with virtual cores.
I found this KB article (http://kb.vmware.com/kb/1010184) describing how to add cpuid.coresPerSocket, and it doesn't seem to be changing anything.
The server is a dual quad core Xeon 5400 series machine. My goal is to install Windows 7 in a VM and let it see 4 processors. If I set vCPUs to 4, Windows only sees and uses 2, due to the client OS only allowing 2 physical CPUs. I've tried setting vCPU to 1 and cpuid.coresPerSocket to 4, and the OS only sees one CPU. If I set vCPU to 2, and cpuid.coresPerSocket to 2, the OS still sees only 2 CPUs instead of 4.
The VM Version is reported as 7 in the vSphere client, and this was a clean new VM created after the 4.1 upgrade.
>If I set vCPUs to 4, Windows only sees and uses 2, due to the client OS only allowing 2 physical CPUs. I've tried setting vCPU to
>1 and cpuid.coresPerSocket to 4, and the OS only sees one CPU. If I set vCPU to 2, and cpuid.coresPerSocket to 2, the OS
>still sees only 2 CPUs instead of 4.
Wait, this should in fact be the expected behavior. You shall give the VM the amount of vCPU that you actually want it to have, for example 4. Then use the option in the VMX file and set for example:
cpuid.coresPerSocket = 2
This would mean that Windows thinks it sees two dual core CPUs and a total of 4 logical cpu.
So use the ordinary tool to set the amount of vCPUs wished and the line in the VMX file just to "fool" the guest operating system.
Take a look into the VM's vmware.log file (or attach it). Maybe this helps determine the reason why it is not working.
André
I have a VMWare ESXi 4.0 server that I upgraded to 4.1 (now titled VMWare vSphere Hypervisor it seems),
Could there be a limit in the free version (Vmware vSphere Hypervisor) that blocks this?
>If I set vCPUs to 4, Windows only sees and uses 2, due to the client OS only allowing 2 physical CPUs. I've tried setting vCPU to
>1 and cpuid.coresPerSocket to 4, and the OS only sees one CPU. If I set vCPU to 2, and cpuid.coresPerSocket to 2, the OS
>still sees only 2 CPUs instead of 4.
Wait, this should in fact be the expected behavior. You shall give the VM the amount of vCPU that you actually want it to have, for example 4. Then use the option in the VMX file and set for example:
cpuid.coresPerSocket = 2
This would mean that Windows thinks it sees two dual core CPUs and a total of 4 logical cpu.
So use the ordinary tool to set the amount of vCPUs wished and the line in the VMX file just to "fool" the guest operating system.
Aha, I was making the wrong assumption that vCPU still meant physical processors presented to the OS. Thanks for the assistance on this one, still getting up to speed on the differences between vSphere Hypervisor and the desktop products.
Glad to be able to help!
I've tried setting vCPU to 1 and cpuid.coresPerSocket to 4, and the OS only sees one CPU. If I set vCPU to 2, and cpuid.coresPerSocket to 2, the OS still sees only 2 CPUs instead of 4.
The number of vCPUs should be the total number of cores you want to see. What you want is:
numvcpus = 4
cpuid.coresPerSocket = 2