Over the years, I have written many articles about the fine art of processor selection for SQL Server. This is an important topic, because it has a direct relationship to your SQL Server license costs. It also affects your performance and scalability. As new processor families are introduced, I do the required analytical work and update my recommendations. In this post, I will list my recommended Intel Processors for SQL Server.
Note: I also have a list of recommended AMD Processors for SQL Server.
SQL Server Licensing
Since SQL Server 2012, Microsoft has been using core-based licensing for SQL Server Enterprise Edition. Most organizations also use core-based licensing for SQL Server Standard Edition (even though server licensing is available).
With non-virtualized servers, you are required to purchase a SQL Server core license for every single physical processor core in the machine. Every single physical core present in the host machine must be licensed. It doesn’t matter if you have disabled physical cores in the host BIOS. This is also true if you have exceeded the physical core license limit for SQL Server Standard Edition. In either case, you still have to license every single physical core in the machine.
With virtualization, the story is slightly different. Normally, you have to purchase a SQL Server core license for every single vCPU in each virtual machine. There is a minimum of four core licenses per VM. The exception to this is if you purchase enough SQL Server core licenses for all of the physical cores in the entire host machine, and if you also purchase Microsoft Software Assurance. If you do this, you can then create as many VMs with as many vCPUs as you like.
Windows Server Licensing
Windows Server 2016 introduced a new core-based licensing model. The new model requires a minimum of eight physical core licenses per processor. It also requires 16 physical core licenses per host machine. Fortunately, these Windows Server core licenses are relatively affordable. This is especially true for Windows Server 2016 or 2019 Standard Edition. Windows Server Standard Edition is all that is required for most SQL Server instances.
Unfortunately, this new licensing model may encourage well-meaning server administrators to make a poor processor choices. They may select a processor with more physical cores than they actually need for SQL Server. A server admin might do this in order to “get their money’s worth” from the Windows Server core licenses. This could be a very expensive mistake from a SQL Server licensing cost perspective!
Processor Selection 101
Previously, I explained the relevant differences between physical sockets, physical cores and logical cores. Keep in mind that Microsoft does not care (for pricing purposes) whether a physical core is fast or slow. Regardless of the performance of the core, the per-core license cost is exactly the same.
Knowing this, you should purposely choose a particular processor SKU that has the best single-threaded performance possible for a given physical core count. A very common mistake I see is where a server administrator purposely selects a low-range or mid-range processor SKU (at a given core count) to save a small amount of money on the hardware. Quite often, they save far less than 1% of the total system cost, but give up anywhere from 20-40% of their single-threaded performance.
For any particular server processor product family, you have a range of available processor SKUs. These SKUs have different physical core counts and other relevant performance specifications, such as base clock speed. In particular, Intel does a LOT of product segmentation with their CPU lineup.
They segment their 2nd Generation Intel Xeon Scalable Processor SKUs into Platinum, Gold, Silver, and Bronze families. For SQL Server usage, you should NEVER use a Xeon Silver or Bronze CPU model. Those are entry-level CPUs meant for the price-sensitive market. They give up a huge amount of performance for a relatively small hardware costs savings. Remember, this is for SQL Server, where all physical cores cost the same to license.
Intel also uses multiple model number suffixes that indicate support for different memory capacities and other features. This makes it more complicated to understand than it should be. For example, I count eleven different SKUs that have 24 physical cores in the Intel ARK database.
Fortunately, I have come up with a list of what I think are the “best” processors for SQL Server at each core count. These are all “standard” processors that don’t have features like higher memory capacity.
Recommended Intel Processors for SQL Server
The table above shows the best SKUs at each physical core count for SQL Server usage. These system metrics are for a two-socket system, with both sockets populated.
The TPC-E score is the result of a proprietary calculation of the estimated TPC-E score for that processor. It uses an actual TPC-E submission as a baseline. It is a measure of the total CPU capacity of the system. The score/core is a measure of the single-threaded CPU performance of that processor. Finally, the license cost is for SQL Server 2019 Enterprise Edition.
If you look at this table closely, you should notice some interesting points. For example, it would be a bad idea to pick the Xeon Platinum 8270 instead of the Xeon Gold 6248R. The Xeon Platinum 8270 has two more cores to license, but it actually has less capacity and less ST CPU performance. This is because it has a lower base clock speed (2.7 GHz vs. 3.0 GHz). You would be paying about $27K more for SQL Server licenses to have less capacity and less performance. The Platinum SKU would also cost more than the Gold SKU.
In a similar vein, I would prefer the Xeon Gold 6246R over the Xeon Gold 6254. Having a 3.40 GHz base clock instead of a 3.10 GHz base clock is very significant. The Xeon Gold 6246R also has a much larger 35.75MB L3 cache compared to a 24.75MB L3 cache.
The key takeaway here is that it is very important to do some thoughtful analysis of your available processor choices. This is especially relevant for a server that will have a SQL Server workload. The worst thing you can do is to just let someone else make the choice with no input from you. It is very easy to make a bad choice in this area.
I hope that my list of recommended Intel processors for SQL Server will help you make a more informed decision.
Please let me know what you think in the comments. If you want to stay up to date with new information on this subject, follow me on Twitter. Thanks for reading!