For Day 6 of this series, I am going to talk about Geekbench. Geekbench is a cross-platform, synthetic benchmark tool from Primate Labs. It provides a comprehensive set of benchmarks designed to quickly and accurately measure processor and memory performance. There are 32-bit and 64-bit versions of Geekbench, but in tryout mode you can only use the 32-bit version. A license for the Windows version is only $12.99, so it is quite affordable. The latest version is 2.4.2, which was released on March 7, 2013. The release history for Geekbench is here.
One nice thing about Geekbench is that there are absolutely no configuration options. All you have to do is just install it and run it, and within two to three minutes you will have an overall benchmark score for your system, which is further broken down into four sections, two measuring processor performance, Integer (12 scores) and Floating Point (14 scores), and two measuring memory bandwidth performance, Memory (5 scores), and Stream (8 scores).
I tend to focus first on the overall Geekbench score, and then look at the top level scores for each section, as shown in Figure 1. These scores can be used to measure and compare the absolute processor and memory performance between multiple systems, or between different configurations on the same system.
Figure 1: Geekbench Result and System Information
I always run each test at least three times in succession, and take the average overall Geekbench score. In just a few minutes, gives me a pretty good idea of the overall processor and memory performance of the system.
You can also use Geekbench to validate that you are getting the best possible memory performance from your system, by looking at the memory and stream scores. Depending on the processor (and it’s memory controller) that is in your system, you can get different memory bandwidth and performance depending on what type of RAM modules are installed in which memory sockets in your server.
To get the best performance on Geekbench (and in real-life database usage), it is very important that you make sure that Windows is using the High Performance Power Plan instead of the default Balanced Power Plan (with Windows Server 2008 or newer). On most new server systems, there are also Power Management settings in the main system BIOS that need to be set correctly to get the best performance from a system. Otherwise, the system will try to minimize electrical power usage (at the cost of performance) despite what your Windows power plan setting is trying to do. Generally speaking, you either want to disable power saving at the BIOS level or set it to OS control (so that you can dynamically control it from within Windows).
I like to run Geekbench on every available non-production system that I have access to, so that I can save the various system configurations and Geekbench score results in a spreadsheet. Then, I can use this information to roughly compare the overall CPU/memory “horsepower” of different server systems. This is very useful if you are doing capacity or consolidation planning.
For example, let’s say that you have an existing database server with (4) six-core 2.66GHz Intel Xeon X7460 processors and 128GB of RAM, and this system has an averaged Geekbench score of 16,632. You are assessing a new system that has (2) eight-core 2.9GHz Intel Xeon E5-2690 processors and 192GB of RAM, and the new system has an averaged Geekbench score of 28,964. In this situation, you could feel extremely confident from a CPU and RAM perspective that the new, two-socket system could handle the workload of the old four-socket system, with plenty of room to spare. You could use the extra CPU capacity of the new system to handle additional workload, or you could use it to reduce your I/O requirements by being more aggressive with SQL Server data compression and backup compression.
In the absence of a large number of different systems on which to run Geekbench, you can still browse online the published Geekbench results for various systems. Simply look up the results for the system closest in spec to the one being evaluated. You can use the search function on that page to find systems with a particular processor, and then drill into the results to get a better idea of its relevance.
Whenever you are comparing Geekbench scores between different systems, make sure you are comparing 32-bit scores to 32-bit scores, and 64-bit scores to 64-bit scores, since the 64-bit version of Geekbench will give you significantly higher score on most newer processors.