Hi Experts,
My shop has SQL Server 2016, 2017, 2019 SE, EE and DE.
We support a lot of 3rd party solutions.
This week, our CIO told us to cut the SQL Server VM (Virtual Machine) CPU to 1 because he wants to save the licensing cost and wants to move to Azure with reduced licenses.
I don't find anything on MicroSoft website on what is the minimum CPU required to run 1 SQL Default Instance per VM.
Can you help to shed some lights? I am so worried that trimming CPU to 1 will cause application/SQL performance issues but CIO wants us to do it regardless.
Hi Scott,
Thank you for your feedback.
Our CIO wants to cut each SQL Server VM CPU to 1 so that he can come up with a reduced SQL Server Per Core License.
I need help on what is the MIN CPU for each SQL Server VM (with 1 SQL Instance Only -- default instance). I am afraid there will be performance issues when SQL VM goes down to only have 1 CPU.
The best advice I can give is to contact Microsoft and ask to speak to a licensing rep. The licensing for Enterprise Edition on virtual machines is very economical if you do it correctly. Also, you cannot assume that you can just reduce the number of core licenses, typically all physical cores must be licensed even if you don't intend to use them. Scott already mentioned 2 core packs as the minimum. The only way to know the actual cost is to talk to MS.
One thing that is safe to assume: Azure will absolutely be more expensive than SQL Server on-prem in a virtualized environment, for the same level of performance (probably only half the performance). You'll pay less for more RAM than you'll be charged monthly in Azure for the same capacity (I checked Newegg vs. the Azure pricing calculator), which will do more for your performance than CPU cores.
If your CIO is so concerned about costs that they only want to license 1 CPU, then use Express Edition. It's free, it's limited to 1 core per instance, and has about the same limitations as the cheapest Azure database option. There are also many other costs associated with Azure than just the SQL licensing, like network egress.
Sounds like you've got an EE installation. I'd just jack up the RAM big time and move everything to that, getting rid of all the other license costs. You can use multiple named instances on one box, and CPU licenses will cover all the instances. You'd probably need at least 4 CPUs, but maybe not more than that. Use 1TB of RAM if you need it.
Gentlemen,
First of all, thank you so much for your advice and help!
We run 1 SQL instance per SQL VM due to the various vendor solutions we support for multiple departments, and based on their specific requirement and security concerns.
Where we are here is, our CIO won't want to look at the licensing in a big picture now. All he wants to do is to have us to cut the SQL VM CPU to 1 for all Developer, Standard and Enterprise Editions.
So I can only start with:
How detrimental is it to run a SQL Instance with 1 vCPU (most of them support multiple databases and even multiple applications)?
The first thing to look at is the current system - and how many CPUs are allocated to that environment. The next thing - and probably the most important is to review the minimum requirements from each vendor.
Reducing the number of CPUs for a particular vendor may invalidate the contract with that vendor. It most likely will cost a lot more when that vendor refuses to address issues because you no longer meet the vendors minimum requirements.
I would not run an Enterprise Edition with less than 4 CPUs. In fact - I couldn't see running EE on a system that could run with only 4 (or less) - that would just be wasting money for features that are almost certainly not utilized.