On March 15, 2021, AMD officially released their EPYC 7003 Series of server processors. These are the 3rd generation of AMD EPYC server processors, and they have a code name of Milan. This family of processors uses the same Zen 3 architecture as the Ryzen 5000 series desktop processors. Because of this, performance expectations are quite high. In this post, I will give my recommendations for the Best AMD EPYC 7003 Series Processors for SQL Server.
AMD EPYC 7003 Series SKUs
The EPYC 7003 Series has nineteen SKUs that range from 8C/16T up to 64C/128T. Of these, four SKUs are “F” Series – Per Core Optimized. These have higher base and boost clock speeds and high cTDP ratings, so they will be very well suited for SQL Server usage. This is true even though they are more expensive. Unlike the EPYC 7002 Series “F” SKUs, all of four of these new SKUs have 256MB of L3 cache.
In addition, four EPYC 7003 SKUs have a “P” suffix, which means they will only work in one-socket servers. They are are significantly less expensive than an equivalent non-“P” SKU. If you are going to use a one-socket server, they can save you some money. Unfortunately, none of the single-socket “P” SKUs are good choices for SQL Server usage. But more about that later…
These new processors are socket compatible with the previous generation AMD EPYC 7002 Series processors. This means they will work in existing model servers (with a BIOS update). AMD EPYC 7003 series processors work in one and two-socket servers.
Here is the complete SKU and price list from AMD.
SQL Server 2019 Licensing Basics
SQL Server 2012 and newer uses core-based licensing. For SQL Server 2019, the price per core is $1,793.00 for Standard Edition and $6,874.00 for Enterprise Edition. Core licenses are sold in two-packs, with a minimum of four core licenses per physical processor or virtual machine. Your license costs can increase very quickly with high core count processors!
Thankfully, Microsoft does not change the core license cost based on the actual performance of the processor(s) you are using. The cost per core is the same whether you are using a slow processor or a very fast processor. If you do a good job with your processor choice, you can save a huge amount on your licensing costs.
Knowing this, you absolutely should put some careful thought into exactly which processor you choose. This is especially important for a new server that will be used for SQL Server. Picking a processor that lets you license fewer cores can save you far more money on licensing than the entire new server HW cost. A good processor choice will have better single-threaded CPU performance and may also have more total CPU capacity.
SQL Server Standard Edition
If you know you will be using SQL Server 2019 Standard Edition (with its 24 core per instance license limit), then you should not get a system with more than 24 physical cores. This applies to both a bare metal system and to a virtual machine running on a larger host machine.
SQL Server 2019 Standard Edition is limited to the lesser of four sockets or 24 physical cores on non-virtualized instances. On virtualized instances, it is limited to the lesser of four sockets or 24 virtual cores (which may map to logical or physical cores).
If you exceed the core or socket limit for Standard Edition and install SQL Server 2019 Standard Edition, it is likely that you will have a situation where your available cores (from the license limit) are not spread evenly across your NUMA nodes or sockets. This is very bad for performance, but you can reduce the effect with an ALTER SERVER CONFIGURATION command. I go into more detail about this with my blog post here.
Best AMD EPYC 7003 Series Processors for SQL Server
The table below shows the “best” AMD EPYC 7003 processors for SQL Server at each available core count. It includes the exact SKU, the number of physical cores, clock speeds, and L3 cache size. Also included are the CPU cost and SQL Server 2019 Enterprise Edition license cost. The license cost is how much it would cost to license SQL Server 2019 Enterprise Edition for a one-socket server with that processor. The SKUs in bold green are my preferred choices.
The TL:DR is that if you are planning on running SQL Server 2019 on an AMD EPYC 7003 processor, you should be picking one of the five SKUs in bold green from the table. Otherwise, you are making a mistake.
Estimated TPC-E Scores for EPYC 7003 Series
Since I am writing this before March 15th, 2021, we don’t have any official TPC-E benchmark submissions for any systems using the AMD EPYC 7003 Series processors yet. I expect that one or more server vendors will release an official TPC-E benchmark result for both one-socket and two-socket systems. If this happens on or after March 15th, it will probably be Lenovo or Fujitsu.
In the meantime, I compared the key specifications of the AMD EPYC 7763 to the previous generation AMD EPYC 7742. The AMD EPYC 7742 does have an official TPC-E benchmark submission from Lenovo, with a score of 6716.88.
I also ran a number of CPU and memory benchmarks on AMD EPYC 7763, 75F3 and 7742 systems. In addition, I ran the same benchmarks on multiple Zen 3 and Zen 2 client CPUs that I own. Finally, I did some quick testing with SQL Server 2019.
The idea here was to come up with a credible estimate for the performance delta between the old flagship AMD EPYC 7742 and the new flagship AMD EPYC 7763 processors. Once I had this, I could use my standard methodology for coming up with estimated TPC-E scores for other SKUs in the same family.
The results of all of these calculations and testing are shown in the table below. Any errors or omissions are completely my responsibility.
I just got access to the EPYC 7003 systems courtesy of Wendell Wilson (b|t) of Level1Techs fame, who reached out to use my tools for testing and I confirmed my initial test results this morning. He has been incredibly helpful, and I highly recommend both his content and consulting services.
Update: HPE just submitted an official TPC-H benchmark result for a one-socket system running an AMD EPYC 7763 processor. This system was nearly identical to a previous HPE system (except for the server model) running an AMD EPYC 7742 processor that also has an official result.
The new processor had a 27.4% higher TPC-H score, which is pretty close to my 25% TPC-E estimate. I have more details here.
Why Not Use a Lower Cost “P” SKU?
AMD has four single-socket SKUs that each have a “P” suffix in the model name. Each of these four SKUs are significantly less expensive than the other choices at that core count. For a one-socket machine, why not use one of those and save some money?
Those SKUs are great choices for non-SQL Server usage. They are also great where performance is not a top priority. They are terrible choices for SQL Server usage. Let’s compare them to the better choice at each core count.
AMD EPYC 7763 vs. AMD EPYC 7713P
If you want a high core count CPU for a single-socket virtualization host, a 64C/128T SKU is the top of the stack. Because of this, I predict that many virtualization admins will want to standardize on a 64C CPU. As a SQL Server DBA, you should try to steer them to a lower core count CPU for SQL Server VMs. This is for performance and VMware licensing cost reasons.
If that is not possible, try to get them to use the faster 7763 instead of the 7713P. The higher base clock speed and higher configurable thermal design power (cTDP) are quite important. Together, they mean that the processor cores will be spending more time running at a higher clock speed. This difference far outweighs the difference in the processor cost.
AMD EPYC 75F3 vs. AMD EPYC 7543P
I think a 32C/64T CPU is going to be the sweet spot for a virtualization host. On April 2, 2020, VMware implemented a licensing change where if a CPU has more than 32 cores, additional CPU licenses will be required. This will double your VMware licensing cost if you use a 64C CPU instead of a 32C CPU.
The “core-optimized” 75F3 has a higher base clock and higher boost clock compared to the 7543P. It also has a higher cTDP. This means that you will get better single-threaded CPU performance because more cores will be running at a higher speed more often. One again, this performance difference outweighs the higher processor cost for SQL Server usage.
AMD EPYC 74F3 vs. AMD EPYC 7443P
As the core counts decrease, the base clock speeds are starting to increase. The “core-optimized” 74F3 has a significantly higher base clock speed and double the L3 cache size compared to the 7443P. It also has a higher cTDP rating. Giving up so much performance to save less than $1,600.00 on the hardware is not a good choice for SQL Server.
AMD EPYC 73F3 vs. AMD EPYC 7313P
As you get down to a 16C/32T CPU, you will probably be thinking more about bare metal instead of a virtualization host. Smaller organizations with modest workloads might still get some value from virtualization at this level though.
The “core-optimized” 73F3 has a significantly higher base and boost clock speed and double the L3 cache size compared to the 7313P. It also has a much higher cTDP rating. Giving up so much performance to save less than $2,608.00 on the hardware is still not a good choice for SQL Server.
The AMD EPYC 7003 Series has nineteen SKUs. Of these, five SKUs are clearly the best choices at different core counts for SQL Server usage. Here are the Best AMD EPYC 7003 Series Processors for SQL Server.
- 64C/128T: AMD EPYC 7763
- 32C/64T: AMD EPYC 75F3
- 24C/48T: AMD EPYC 74F3
- 16C/32T: AMD EPYC 73F3
- 8C/16T: AMD EPYC 72F3
I will have additional posts that will compare these best choices for SQL Server from AMD to the best choices from Intel.
If you have any questions about this post, please ask me here in the comments or on Twitter. I am pretty active on Twitter as GlennAlanBerry. Thanks for reading!