For Day 23 of this series, I want to talk a little about some things to consider as you make the decision whether to purchase a four socket database server or two socket database server.
Traditionally, it was very common to use a four socket machine for most database server scenarios, while two socket servers were often used for web servers or application servers. With the advances in in new processors and the improvements in memory density of the past three-four years, you may want to reconsider that conventional wisdom.
Historically, two-socket database servers did not have enough processor capacity, memory capacity, or I/O capacity to handle many “heavy” database workloads. Processors have gotten far more powerful in the last few years, and memory density has gone up dramatically. It is also possible to get much more I/O capacity connected to a two socket server than it was a few years ago.
Another reason to think about this issue is the cost of SQL Server processor licenses. If you can run your workload on a two socket server instead of a four socket server, you will save 50% on your SQL Server processor license costs, which can be a very substantial savings! Even with SQL Server 2008 R2 Standard Edition licenses, the cost of two processor licenses would pay for a very capable two socket database server (exclusive of the I/O subsystem).
A little history of Dell PowerEdge Servers
Back in 2006, you could buy a two-socket Dell PowerEdge 1850, with two hyper-threaded Intel Xeon “Irwindale” 3.2GHz processors and 16GB of RAM (with a total of four logical cores). This was fine for an application or web server, but it did not have the CPU horsepower (Geekbench score was about 2200) or memory capacity for a heavy duty database workload.
Around the same time, you could buy a four-socket Dell PowerEdge 6800, with four dual-core, Intel Xeon 7040 “Paxville” 3.0GHz processors and 64GB of RAM (with a total of 16 logical cores with hyper-threading enabled). This was a much better choice for a database server because of the additional processor, memory, and I/O capacity compared to a PowerEdge 1850. Even so, its Geekbench score was only about 4400, which is pretty pathetic by today’s standards. Back in 2006-2007, it still made sense to buy a four socket database server for most database server workloads.
By late 2007, you could buy a two-socket Dell PowerEdge 1950, with two, quad-core Intel Xeon E5450 processors and 32GB of RAM (with a total of eight logical cores) and you would actually have a pretty powerful platform for a database server. A system like this would have a Geekbench score of about 8000.
By late 2008, you could buy a four-socket Dell PowerEdge R900, with four, six-core Intel Xeon X7460 processors and 256GB of RAM (with a total of of 24 logical cores). This was a very powerful , but costly platform for a database server, with a Geekbench score of around 16500.
By early 2009, you could buy a two-socket Dell PowerEdge R710, with two, quad-core Intel Xeon X5570 processors, and 144GB of RAM (with a total of 16 logical cores) and you would have a very powerful database server platform. This system would have a Geekbench score of around 15000.
By early 2010, you could buy that same Dell PowerEdge R710, with more powerful six-core Intel Xeon X5680 processors (with a total of 24 logical cores), and push the Geekbench score to about 22500. This gives you quite a bit more CPU capacity than the PowerEdge R900 that you bought in late 2008. If you are concerned about 144GB of RAM not being enough memory in the R710, you could buy two R710s, and have nearly triple the CPU capacity of a single R900. This assumes that you can split your database workload between two database servers, by moving databases or doing things like vertical or horizontal partitioning of an existing large database.
This trend has been continuing over the past several years, with Intel introducing new processors in the two socket space roughly a year ahead of introducing a roughly equivalent new processor in the four socket space. This means that you will get much better single-threaded OLTP performance from a two socket system than from a four socket system of the same age (as long as your I/O subsystem is up to par).
Given the choice, I would rather have two, two-socket machines instead of one, four socket machines in almost all cases. The only big exception would be a case where you absolutely need to have far more memory in a single server that you can get in a two socket machine (a Dell PowerEdge R710 can now go up to 288GB if you are willing to pay for 16GB DIMMs), and you are unable to do any re-engineering to split up your load.