License SQL 2014 - Cores

  • Hi -

    Hypothetical situation:

    I have a 32 core server. SQL 2014 enterprise installed. The server licensed for 32 cores.

    Question raised - can we decrease the cores licensed down to 16, and do it quickly?

    Any information provided is greatly appreciated.

  • Assuming it's 4 octocore processors, take out 2 of them.

    Edit: Sorry, that's a bit abrupt but it's the quickest way I can think of 🙂

    Alternatively create a VM on the server, assign max 16 cores to it & install SQL on that.

    I'm not up on SQL 2014 licensing but in earlier version MS didn't allow you to use processor affinity to control licensing so can't think of other ways.

  • There is some information regarding this under the Read the SQL Server 2014 Licensing Datasheet

  • Gazareth (4/9/2014)


    Assuming it's 4 octocore processors, take out 2 of them.

    Edit: Sorry, that's a bit abrupt but it's the quickest way I can think of 🙂

    Alternatively create a VM on the server, assign max 16 cores to it & install SQL on that.

    I'm not up on SQL 2014 licensing but in earlier version MS didn't allow you to use processor affinity to control licensing so can't think of other ways.

    Unfortunately, even you have 16 vcores max, if those 16 vcores can hit 32 pCores you have to license all the pCores. At least that's what I was told last time I spoke to MS.

    I'm a DBA.
    I'm not paid to solve problems. I'm paid to prevent them.

  • andrew gothard (4/9/2014)


    Gazareth (4/9/2014)


    Assuming it's 4 octocore processors, take out 2 of them.

    Edit: Sorry, that's a bit abrupt but it's the quickest way I can think of 🙂

    Alternatively create a VM on the server, assign max 16 cores to it & install SQL on that.

    I'm not up on SQL 2014 licensing but in earlier version MS didn't allow you to use processor affinity to control licensing so can't think of other ways.

    Unfortunately, even you have 16 vcores max, if those 16 vcores can hit 32 pCores you have to license all the pCores. At least that's what I was told last time I spoke to MS.

    I was a bit unsure on that myself, but from the Licensing Datasheet:

    "To license a VM with core licenses, purchase a core

    license for each virtual core (virtual thread) allocated to

    the VM (with a minimum of 4 core licenses per VM)."

  • Gazareth (4/9/2014)


    andrew gothard (4/9/2014)


    Gazareth (4/9/2014)


    Assuming it's 4 octocore processors, take out 2 of them.

    Edit: Sorry, that's a bit abrupt but it's the quickest way I can think of 🙂

    Alternatively create a VM on the server, assign max 16 cores to it & install SQL on that.

    I'm not up on SQL 2014 licensing but in earlier version MS didn't allow you to use processor affinity to control licensing so can't think of other ways.

    Unfortunately, even you have 16 vcores max, if those 16 vcores can hit 32 pCores you have to license all the pCores. At least that's what I was told last time I spoke to MS.

    I was a bit unsure on that myself, but from the Licensing Datasheet:

    "To license a VM with core licenses, purchase a core

    license for each virtual core (virtual thread) allocated to

    the VM (with a minimum of 4 core licenses per VM)."

    Yep, I don't think you need affinity on the underlying physical cores, as long as the number of vCPUs matches the licensed cores.

    Incidentally, the vCPU cores are tied to a single physical host, so you are not entitled to use vMotion or similar technology within a VM farm, where you may move between different physical hosts from time to time. You need Software Assurance to be allowed to do that.

  • Our discussions with Microsoft and its license resellers have shown that the following is accepted:

    If you set processor affinity to match the number of cores you have licensed, then you can validly license fewer cores than are available to Windows. This applies to both physical and virtual instances of Windows.

    The licensing must cover all cores that you are using. If you have a 32-core box and you use affinity to set 8 cores for IO usage and a different 8 for CPU workload that is 16 cores you must have a license for.

    Original author: https://github.com/SQL-FineBuild/Common/wiki/ 1-click install and best practice configuration of SQL Server 2019, 2017 2016, 2014, 2012, 2008 R2, 2008 and 2005.

    When I give food to the poor they call me a saint. When I ask why they are poor they call me a communist - Archbishop Hélder Câmara

  • EdVassie (4/9/2014)


    Our discussions with Microsoft and its license resellers have shown that the following is accepted:

    If you set processor affinity to match the number of cores you have licensed, then you can validly license fewer cores than are available to Windows. This applies to both physical and virtual instances of Windows.

    The licensing must cover all cores that you are using. If you have a 32-core box and you use affinity to set 8 cores for IO usage and a different 8 for CPU workload that is 16 cores you must have a license for.

    I've spoken to a few people who have had similar conversations with resellers and still found themselves coming unstuck when they got audited.

    Unless something's changed since we last looked at this, setting processor affinity is not valid. For one, that only affects the core database engine, not other elements (like SSIS, SSAS for example) and I think even CLR and service broker. There's nothing on paper from Microsoft declaring these settings have any impact on licensing.

  • The moral is that you need to work this out with your license reseller. Be up-front about what you plan to do, and get their agreement. If the license reseller gets things wrong, Microsoft should stick to the agreed terms of your contract for the life of the license.

    Original author: https://github.com/SQL-FineBuild/Common/wiki/ 1-click install and best practice configuration of SQL Server 2019, 2017 2016, 2014, 2012, 2008 R2, 2008 and 2005.

    When I give food to the poor they call me a saint. When I ask why they are poor they call me a communist - Archbishop Hélder Câmara

  • HowardW (4/9/2014)


    EdVassie (4/9/2014)


    Our discussions with Microsoft and its license resellers have shown that the following is accepted:

    If you set processor affinity to match the number of cores you have licensed, then you can validly license fewer cores than are available to Windows. This applies to both physical and virtual instances of Windows.

    The licensing must cover all cores that you are using. If you have a 32-core box and you use affinity to set 8 cores for IO usage and a different 8 for CPU workload that is 16 cores you must have a license for.

    I've spoken to a few people who have had similar conversations with resellers and still found themselves coming unstuck when they got audited.

    Unless something's changed since we last looked at this, setting processor affinity is not valid. For one, that only affects the core database engine, not other elements (like SSIS, SSAS for example) and I think even CLR and service broker. There's nothing on paper from Microsoft declaring these settings have any impact on licensing.

    Aye, we were told that any core you can hit, you license. If someone ballses up and hits non licenced cores by accident, as long as you show reasonable efforts have been made to prevent it, they reserve the right to go easy. It's not guaranteed they will. Apart from anything else, your cores should be SQL Server only. You shouldn't be having your SQL Server VM's, for example, wandering all over your server farm. For about (or aboot if you're Canadian) a million reasons. Brent Ozar covers this very well

    I'm a DBA.
    I'm not paid to solve problems. I'm paid to prevent them.

  • For those interested a few blog post are slowly coming out on the licensing changes with SQL Server 2014. This blog post[/url] has the link to the licensing page for 2014 and points out a few high value things that are changing.

    As is stands you are now required to license all physical cores on your server. The blog post above shows a clear snapshot of the statement from Microsoft's license overview.

    If you have a reseller telling you anything different than what that document states I would two things:

    1. Show them what that document states.

    2. If they still interpret that you are safe with their recomendations then be darn sure you get it in writing from them on company letterhead; would also get your legal and/or auditing department involved or at least make them aware.

    Shawn Melton
    Twitter: @wsmelton
    Blog: wsmelton.github.com
    Github: wsmelton

Viewing 11 posts - 1 through 10 (of 10 total)

You must be logged in to reply to this topic. Login to reply