Link to home
Start Free TrialLog in
Avatar of Joel Parmer
Joel ParmerFlag for United States of America

asked on

What are the ramifications of reducing the number of CPUs in a Windows 2012 virtual server

We have a Windows 2012 R2 server running SQL server 2012.  The server is a virtual machine in ESXi 5.5.

One of the other engineers here gave the Virtual machine all 12 cores of the ESXI host.

My question is, Can I reduce the number of cores from12 back down to 4?

What impact would that have on either Windows Server 2012 R2 or SQL 2012?

Is it even possible or will I need to build a new server and migrate the databases?
ASKER CERTIFIED SOLUTION
Avatar of Brad Groux
Brad Groux
Flag of United States of America image

Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial
There's also a benefit to reducing the number of cores associated with the VM - look at the licencing for your SQL Server instance. You may find (depending on the edition) that it's considerably cheaper to use 4 or 8  cores than it is to use all 12. Look at the MS Licencing Guide.

hth

Mike
Avatar of Ryan Mangan
Hi,

Have a read of the following article about CPU allocation.

http://ryanmangansitblog.com/2014/01/18/deciding-on-how-many-vcpus-should-a-virtual-machine-be-allocated/ 

Rule of thumb is start with one and add more if required, With regards to SQL always start with two vCPU's.

VMware does have a few artcles on Virtualising SQL which may also be of some use.

Have a look at the following:

http://www.vmware.com/files/pdf/solutions/SQL_Server_on_VMware-Best_Practices_Guide.pdf
It is really easy to understand how the CPU allocation works in HYPER-V of Microsoft virtualization and ESXi of VMWare virtualization.

http://sangnak.com/cpu-calculation-for-virtual-machine-in-hyper-v-and-esxi/

Hyper-V really works on core and limitation is of 4 core per VM  where as VMWare works on processing capacity means it will be in MHz or say GHz . Calculation of processing capacity can be find in the link mentioned above.
Now on to your question ,
Can I reduce the number of cores from12 back down to 4?
The best method or approach I would suggest is to check with the performance logs of the VM and its consumption during peak hours. If it never reaches to the total capacity allocated you can reduce it to the maximum limit it had achieved ever.
For example , you have installed ESXi on 12 core 3.2 GHz processor so total processing capacity allocated is  3.2x12 = 38.4 GHz and if you see in the performance log that it had reached maximum processing capacity of 12.6 Ghz . So allocating 4 core will be suggested. Apart from this ESXi also has a feature of giving more than the allocated processing capacity if its available on the ESXi and once the requirement goes down it reclaims it.

What impact would that have on either Windows Server 2012 R2 or SQL 2012?
Lowering of CPU doesnot always impact unless its a very high CPU intensive application is running. If you check and find that the usage of CPU doesnot exceed beyond a limit then lowering of CPU will not make much of a difference however if lowering of CPU is done even beyond the expected value or calculative value and not much of CPU processing is free then you may observe latency in SQL server or guest windows 2012.

Is it even possible or will I need to build a new server and migrate the databases?
Yes changing of CPU is possible. However change in number of CPU to the running VM is not allowed in ESXi , you can change it after shutting down the VM . Just for CPU changing its worthless to create new server or migrating database.

I would suggest you to change the CPU number and check if its working fine with you or not and if you find the CPU utilization is quite high in Windows server then you can revert back the changes.

If this much information doesn't provide you enough information ,please let me know so that either we can share the screenshot and suggest you the best solution.