Linux-Bench Components And Test Setup
While Windows Server is still a popular platform, many Xeon E5-based servers are also going to run some flavor of Linux as an operating system. Server-oriented hardware also has relatively poor graphics capabilities. Most are able to render a single 2D terminal with a decent amount of latency, and that's about it. As a result, we are using a variety of Linux-based benchmarks to test the Xeon E5-2600 v3.
If you've manually configured and run benchmarks under Linux, then you know they can be an exercise in frustration. For this review, we are using a "simple" test script to automate running a few common Linux benchmarks. It's free and can be found at linux-bench.com or on GitHub. There is also a new Docker.io version of the script on GitHub, so it can be run using perhaps the hottest technology of the year. The bonus of using this type of script is that it is freely available to test on your own server.
It is designed to run off of a standard Ubuntu 14.04 LTS LiveCD using only three commands. As a result, it can even be run remotely on servers with no local disks installed via KVM-over-IP. We did run with a local LiveCD image, booting into a CLI environment before each iteration to ensure no artifacts were leftover from previous runs.
The Linux-Bench script itself does little other than install dependencies and run benchmarks. As a disclaimer, I am one of the community contributors to the script. However, I do not help maintain any of the individual benchmarks.
The byte-unixbench project can be found on Google Code here. However, it has roots dating back to 1983. It is an extremely popular suite that has a number of component tests like Dhrystone, Whetstone, and shell scripts. Specifically, we are interested in the CPU tests, so metrics for 2D/3D GPU and storage are excluded. Also, since these systems have many processing cores, we utilized the high CPU count patch.
c-ray 1.1 is a popular and simple ray-tracing benchmark for Linux systems written by John Tsiombikas. It is designed so that, on most systems, it should not need to access RAM and therefore is highly sensitive to processor performance. You can find archived results, including those from SGI systems, here.
STREAM is perhaps the seminal memory bandwidth application. The benchmark was created and is maintained by Dr. John D. McCalpin. More information can be found here.
OpenSSL caused a stir with the now famous "Heartbleed" bug earlier in 2014. This is the technology that secures much of the Internet's data traffic, and is a common server application.
HardInfo is a simple benchmark that's popular in Linux-based environments. It is well known perhaps because the benchmark is installed by default on many Ubuntu desktop systems.
NAMD is a molecular modeling benchmark. It was developed by the Theoretical and Computational Biophysics Group in the Beckman Institute for Advanced Science and Technology at the University of Illinois at Urbana-Champaign. More information can be found here.
NPB or NAS Parallel Benchmarks are a set of computational fluid dynamics applications originally intended to benchmark parallel supercomputers for NASA. We are using only one node for our testing, though today's multiprocessor systems in some ways mirror parallel computers from many years ago. You'll find more information on NASA's site, here.
7-Zip is a popular open source compression application. Servers compress data for storage purposes and also before transmitting. It is an extremely common tool and common application.
redis is a popular new Web technology to help online applications scale. This is an in-memory key value store, making it memory bandwidth- and CPU performance-bound. It's an emerging technology with a strong developer base.
Sysbench is another venerable benchmarking application. It is extremely easy to use and, for this test, we are only focusing on CPU performance.
You can easily replicate these tests by downloading and running them individually. Using the Linux-Bench script's parameters have been profiled across over 100 different systems, from low-end Atoms up to quad-socket Xeon and Opteron servers, thanks to an active community participating and posting edits in GitHub.