VMware Cloud Community
e4prasad
Contributor
Contributor

Windows 2008 R2 VM showing 7 CPUs in Device Manager.

Hi,

I have 1 windows 2K8 R2 Std VM in our ESX infrastructure, when I right click the task manager it is showing 4 vCPU's but at the same time when I checked the device manager of the VM it is showing 7 CPU's, So I would like to get small clarification on the CPU configuration.

1) Is it possible to have ODD Number of CPU's in any Windows OS (Physical/VM)

2) If YES (above), then why it is showing 4 CPUS in the task manager.

3) If NO, then why the Device Manager is showing 7 CPU's in VM.

Can any one help me to get the understand why there is a dfference.

Thanks

E Prasasd

0 Kudos
10 Replies
Sreejesh_D
Virtuoso
Virtuoso

whats the actual number of vCPUs and the Cores connected to the VM? And does HT is enabled?

0 Kudos
a_p_
Leadership
Leadership

Has the VM been converted (P2V) and/or do you have hosts with different physical CPUs?

Seven CPUs is kind of unusual. What I could of is that the VM ran on different hardware/hosts and has been modified (i.e. # of vCPUs increased) in the past!? Are the CPUs - shown in the Device Manager - different types/models?

André

0 Kudos
e4prasad
Contributor
Contributor

Hi Yezdi,

Thanks for responding.

Let me put some more clarification.

Actually we are doing the exercise on License count in each server. During this activity, I run wmic query from windows to find the CPUS, so from windows  it is showing 4 vCPU, but when I send the HW team (VMWARE) for the confirmation they reported it as 7 CPU for that particular VM.  when I cross checked with Taks mamanger and Device manager I found the difference.

Task Manager as 4 vCPU

Device manager as 7 CPU

Unfortunately I dont have a access in our production VMware Infrastrucutre. So from the ESX configuration I cannot provide the details but I can still try.

Or can you help me what questions should I ask to the VMware team for the clarification.

As per the team communication they are telling they configured the VM with 7 CPUS.

Aswering to your question , HT is enabled in ESX Host but still my question remains, can we have a 7 CPU in any windows OS , i mean ODD no of CPUs.???

0 Kudos
e4prasad
Contributor
Contributor

Hi Andre,

Thanks.

Let me provide you the inputs for your querries.

Has the VM been converted (P2V) and/or do you have hosts with different physical CPUs?  NO

Seven  CPUs is kind of unusual. What I could of is that the VM ran on  different hardware/hosts and has been modified (i.e. # of vCPUs  increased) in the past!? In general we have similar kind of configuration in all Hosts

Are the CPUs - shown in the Device Manager -  different types/models? NO- All CPU are of same types and models.

0 Kudos
ThompsG
Virtuoso
Virtuoso

Hi,

Yes you can have odd numbers of vCPU - we regularly run with 3 vCPU's. Being able to right-size VM's is one of the cool things about virtualization. Cannot do this with physical, i.e. needs to be 1, 2, 4, 8... etc.

Now to your other problem - it is due to the Windows edition you are running on the guest OS. Windows Server 2008 R2 standard only supports/allows 4 sockets worth of CPU which is why you can only see 4 in task manager even though 7 are provisioned. Since you are running vSphere 5 there is an option - cores per socket. Cannot do odd numbers now however you (VMware team) could change this VM from 7 sockets 1 core to 4 sockets 2 core, etc. This would allow Windows to use all the vCPU and continue to stay within your licensing. Actually this was an option with vSphere 4.x aswell but required an advanced setting to be changed. We did this on our SQL servers to limit licensing costs as a single (pre SQL 2012 licensing) socket license was for upto 6 cores. This can now be done at the VM configuration screen.

Kind regards.

Message was edited by: ThompsG

0 Kudos
ThompsG
Virtuoso
Virtuoso

0 Kudos
PhillyDubs
Enthusiast
Enthusiast

This is exactly right. Use the Socket/Core option in Edit Settings if you want more cores and are restricted by "sockets".

VCP5
0 Kudos
e4prasad
Contributor
Contributor

Hi ThompsG,

Thanks a lot for your explanantion its really helped me to understand a lot.As you mentioned I am also looking for the CPU count for the MS SQL Lic. purpose.

Again 1 more question is bugging in my mind. If we are using Windows 2008 R2 with Std Edition which only supports upto 4 CPUS and we are allocating 7 vCPU for that particular VM, so is the guest VM really going to use the power of 7 vCPUS?

If "YES", then how can we pull or monitor the 7 vCPU utilization from the Guest windows VM (windows performance counter).

If "NO", then the Guest VM is wasting the (7-4) 3 vCPU computing power for the applications and we are paying un necessary the lic cost of 3 vCPU which in actual not being used.

Please correct me if I understanding in a correct way.

0 Kudos
ThompsG
Virtuoso
Virtuoso

Hi there,

No worries. Glad it sort of made sense.

The guest OS, Windows Server 2008 R2 standard in this case, will only use 4 vCPUs out of the 7. The "extra" 3 will be unused and wasted. If you look within SQL Server Management Studio you will see that SQL cannot access the "additional" processors either. If the OS CPU scheduler cannot use them (ignore device manager) then they are not available for application use.

Also without getting too far off track, this virtual hardware configuration has the potential to be causing performance issues on the virtual machine due to the co-scheduling of the vCPUs, i.e. the VMKernel has to schedule 7 vCPUs even though the guest can only use 4. Not normally a problem if you need all 7 vCPU but given in this case 3 are completely idle due to licensing, it is again a waste.

Now in regards to licenses, if you are talking SQL licenses then "YES" you could be paying for additional licenses that you cannot access. If you are referring to Windows OS licenses then "NO" - standard license covers 4 sockets there is no additional cost for the other 3 apart from being a unneccessary.

Two options that I see:

  • upgrade/install Windows Server 2008 R2 Enterprise which allows upto 8 sockets (NB: SQL 2012 standard allows 4 sockets or 16 cores so be careful here as well)
  • re-configure VM for multiple cores per socket (recommended)

Kind regards.

0 Kudos
ThompsG
Virtuoso
Virtuoso

Again a couple of links explaining the SQL licensing:

http://blogs.msdn.com/b/ialonso/archive/2012/09/13/can-i-install-sql-server-2012-standard-edition-to...

http://technet.microsoft.com/en-us/library/ms143760(v=sql.110).aspx

One thing I found of interest in here is that you pay the license for SQL standard on the total number of cores even though SQL scheduler cannot access them.

Kind regards.

Message was edited by: ThompsG

0 Kudos