I have been running a PoC for a large data science workload with SQL Server on CentOS. I recently discovered that SQL is using only 20 cores of a 56-core server. I understand that this is because it is operating under the Server+CAL licensing mode, as shown by this entry in the SQL log:

SQL Server detected 2 sockets with 28 cores per socket and 28 logical processors per socket, 56 total logical processors; using 20 logical processors based on SQL Server licensing. This is an informational message; no user action is required.

I know I can change Edition using mssql-conf, but is it possible to change the licensing mode so that I can address all CPU sockets?


Yes, the wrong SQL Server installation files (for the CAL-based setup) were used. The 20-core-limit version is designed for people upgrading from older versions of SQL Server, as explained by Aaron Bertrand.

Check with the team who got your installation files for SQL Server (ISO, CD, ZIP, etc) to get the core-based installation files instead of CAL-based installation files.

Microsoft's instructions for Linux don't include CentOS, but if you read through the comments on that page, they tell you how to pick your repo. If you're still using the latest CU repo and you're still getting the issue, then contact Microsoft support - they may have deployed the wrong binaries to the repo. (This wouldn't be something an outsider could fix.)

  • I understand this could be the problem on a Windows installation, but we installed on CentOS using yum. It was not possible to specify the installation media during this process. – TimBrown Mar 14 '18 at 12:13
  • 1
    Good news! You get to pick the media. Follow the instructions carefully here, including the notes from Microsoft in the comments about picking your repo: docs.microsoft.com/en-us/sql/linux/sql-server-linux-setup – Brent Ozar Mar 14 '18 at 13:44

It seems that this is the default behaviour for the RHEL packages. I have tested this by completely removing and reinstalling SQL Server, including refreshing the repository settings. Selecting the Enterprise Edition during setup causes us to use Server+CAL legacy licensing. It may be that entering a product key will enable per-core licensing instead.

Since this is a development environment, I have change to Developer Edition, and this enables all 56 cores.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.