Today we have a guest editorial by Glenn Berry. This was supposed to run last week, but we had a mix-up and we apologize to Glenn for that.
When thinking about their current database server hardware, many database administrators tend to focus strictly on high level characteristics, such as how many processor sockets and how much RAM is in each server. Often, they also have a similar level of surface knowledge of their storage subsystem, with an awareness of how much space they have available, and what type of storage equipment they are using. It is good to be aware of these high level items, but a great database administrator should also be digging deeper into the specific hardware attributes for all of their database servers.
Having this deeper knowledge gives you a much more complete picture of the performance and scalability characteristics and limits of each database server. Knowing that an extremely important four-socket production database server in your company is running on processors that are four years old (which collectively have less CPU power than the new laptop your Mom bought last month) is very valuable information!
Thanks to the favorable licensing rules that Microsoft uses for SQL Server processor licenses, where only physical processor sockets are counted for licensing purposes, you have the opportunity to get a huge increase in both performance and scalability, with new processors, without spending more on SQL Server license costs. No matter how many physical or logical cores are in a single physical processor, you only pay for one SQL Server processor license for each physical socket in your server. This is in stark contrast to Oracle licensing, where you have to pay more for additional cores in a single physical processor. Microsoft has given us a valuable gift here, and I believe you should take advantage of it.
Currently, you can buy Intel Xeon E7 series processors (such as the E7-4870) that have ten physical cores plus hyper-threading, giving you 20 logical cores for each physical processor. In Q4 of 2011, you will be able to buy new AMD Opteron 6200 series processors with 16 physical cores in each physical processor. Also coming in Q4 2011 will be the new Intel E5-2600 series (Sandy Bridge-EP) processors that will have eight physical cores plus hyper-threading, giving you 16 logical cores for each physical processor in the two socket space. The days of dual-core and quad-core processors are quickly drawing to a close.
You might be thinking that having a new system with literally dozens of processor cores would be nice, but do you really need it? I would argue, yes, you do! Having better per-core performance in a new processor will help single-threaded OLTP query performance, while having more cores will allow you to handle more simultaneous queries, which helps scalability. Having more total processor “headroom” gives you much more flexibility to take advantage of things like SQL Server data compression and backup compression in order to trade some extra CPU utilization in exchange for reduced I/O requirements, both for sequential throughput and space.
If you are budget constrained when buying a new server, I would recommend that you still get the best processors possible for that particular server model, cutting back some on memory if need be, since you will be very likely be stuck with those processors for the life of the server. It is usually much easier to get approval to add more RAM to the server later, if you need to. What do you think?