VMware Cloud Community
ScotofMKE
Contributor
Contributor

1 CPU. 6 Cores. How can vSphere Essentials see all 6 as cores and not sockets?

My host has 1 CPU, 6 cores, and vSphere 4 Essentials licensed for 1 CPU and 1 to 6 cores.  My SQL licensing will allow a max of 1 CPU with up to 4 cores.  It would be nice to configure vSphere with 6 cores per CPU, but it does not work for me.

Here is what was attempted:

Set the cores per socket to 6 using the cpuid.coresPerSocket setting.  If I set the VM to 1 vCPU, Windows only recognizes 1 processor in Task Manager.  If the VM is set to 4 vCPUs, 4 processors are recognized.  If set to 6 vCPUs, I receive the message "Feature vsmp not licensed, requires 6 have 4." 

Same thing happens when I revert the cpuid.coresPerSocket to "1". 

OK, anybody have any idea how to get 6 cores recognized while having SQL see only one physical CPU? 

As a side note, vSphere shows in the General configuration:  Processor Sockets: 1, Cores Per Socket: 6, and Logical Processors: 12.  Can anybody explain the math for coming up with 12?

Reply
0 Kudos
16 Replies
Troy_Clavell
Immortal
Immortal

if you want yourr SQL Server to see say for instance 1 socket and 4 cores, you'll still need to provide 4vCPU's, then you can set your cpuid.coresPerSocket

http://kb.vmware.com/kb/1010184

Reply
0 Kudos
Dave_Mishchenko
Immortal
Immortal

It is only Enterprise licensing that allows for more than 4 vCPUs per VM - http://www.vmware.com/products/vsphere/buy/editions_comparison.html.  With other editions the max is 4 vCPUs which you can present to 4 CPUs, 2 dual-cores, or 1 quad-core.  The logical processor count includes Hyper Threading.

Reply
0 Kudos
ScotofMKE
Contributor
Contributor

According to my licensing, this is what I have:

License key(s) for VMware vSphere 4 Essentials for 1 processor : 
J0686-etc.                     6 CPU(s)

As mentioned, I configured the cores per socket as 6.  If I choose one vCPU for the VM, only one CPU is seen in Windows.  If I set to 6, the VM won't start and produced the earlier posted message. 

Reply
0 Kudos
a_p_
Leadership
Leadership

The ESXi host is licensed for 6 cores per processor, however the virtual machines are not. Take a look at "vCPU Entitlement" at the link Dave provided.

André

Reply
0 Kudos
Troy_Clavell
Immortal
Immortal

core's for ESXi Hosts are different than vCPU's per guest.  In order to get 6 cores on your guest, you'll need to be at a higher license level.  You would have to present 6 vCPU's to the guest, then change the cpuid bit.

Reply
0 Kudos
ScotofMKE
Contributor
Contributor

I would think that if cores per socket was configured at 6 using cpuid.coresPerSocket, and I use 1 vCPU, that would give 6 sockets and 1 physical CPU.  That isn't how cores per socket works?  

Reply
0 Kudos
ScotofMKE
Contributor
Contributor

Two levels of licensing - one for the host and one for the guest?  Sounds like a Microsoft-style licensing H*ll (CALS, anybody?). 

Reply
0 Kudos
Troy_Clavell
Immortal
Immortal

It is what it is.  We don't control VMware's licensing model.  If you want more vCPU's, you have to upgrade your licensing agreement.

Reply
0 Kudos
Dave_Mishchenko
Immortal
Immortal

With VMware Virtual SMP you can assign up to 4 virtual CPUs to a VM (8 for enterprise plus). 8 vCPUs per VM is the current max I beleive for any Intel based virtualization product. A vCPU can run up to the speed of a single processor core, but ESXi resource scheduler changes which physical core a VM thread is run on based on CPU load and the needs of other VMs.  You can fix a vCPU to a specific physical core, but it's best to leave it with the defaults settings.

Reply
0 Kudos
a_p_
Leadership
Leadership

cpuid.coresPerSocket basically devides the number of configured vCPUs giving you a number of multicore vCPUs. E.g. 8 vCPUs with cpuid.coresPerSocket set to 2 will give you 4 dual core vCPUs.

André

Reply
0 Kudos
ScotofMKE
Contributor
Contributor

a.p., with the configuration you described, the VM would have 8 vCPUs assigned, and the guest OS would see 4 physical CPUs with 2 cores each?  

Reply
0 Kudos
ScotofMKE
Contributor
Contributor

It looks like Hyper-V is also restricted to 4 virtual CPUs http://technet.microsoft.com/en-us/library/ee405267(WS.10).aspx

Reply
0 Kudos
Troy_Clavell
Immortal
Immortal

You need Enterprise Plus to make your solution work.

Reply
0 Kudos
Dave_Mishchenko
Immortal
Immortal

What sort of load are you expecting for this SQL VM?  In some cases high CPU usage for SQL may indicate the need for tuning which can eliviate the CPU load.  Are you planning to run other VMs on the host./

Reply
0 Kudos
ScotofMKE
Contributor
Contributor

No other VMs will be run on the host.  The CPU recommendation was from the vendor of the SQL app we use. 

Reply
0 Kudos
Dave_Mishchenko
Immortal
Immortal

I would just start with 4 vCPUs in the VM.  Vendor recommendations tend to over spec servers. 🙂

Reply
0 Kudos