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
whats the actual number of vCPUs and the Cores connected to the VM? And does HT is enabled?
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é
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.???
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.
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
This explains it much better than I did: http://kb.vmware.com/selfservice/microsites/search.do?language=en_US&cmd=displayKC&externalId=101018...
This is exactly right. Use the Socket/Core option in Edit Settings if you want more cores and are restricted by "sockets".
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.
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:
Kind regards.
Again a couple of links explaining the SQL licensing:
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