Benchmarking is an extremely important aspect of properly managing and configuring compute and server clusters. Knowledge about how your cluster is performing provides the foundation of any future tweaks and reconfigurations. It’s also very useful to know exactly what a cluster is capable of.
Clusters are an excellent way to ensure that you are getting the maximum reliability and scalability out of your hardware, but clusters also bring with them a degree of complexity that is difficult to handle without hard data: bottlenecks can occur that will degrade the overall performance of a cluster, so, being able to analyze each component provides information that’s necessary for getting the optimal performance.
With that in mind we’re going to have a look at several of the most popular benchmarking and performance analysis tools for clusters. While some of these aren’t specifically designed for testing clusters, each of them is a useful tool for measuring some aspect of a cluster’s performance.
The InterWorx Control Panel, in addition to being the best way to manage server clusters, also provides a lot of feedback and data about their performance and use. Every system running InterWorx includes a suite of performance graphs accessible by logging into NodeWorx and then going to Server –> System Graphs. While not strictly benchmarking tools, these graphing features can make monitoring your performance much more straightforward.
Cbench is designed for benchmarking and stress testing Linux-based parallel compute clusters. It is capable of performing multiple bandwidth and latency tests, as well as file system stress tests. CBench can also test scheduling and resource management over a set of nodes. If you’re running a compute cluster, rather than a server cluster, then CBench should definitely find its way into your toolkit.
The Gatling Stress Tool is designed for stress testing and benchmarking websites. It’s not specifically designed for clusters but it’s great for testing the responsiveness of sites that live on a server cluster. Gatling users can design scenarios that closely model real-world use patterns and then run multiple tests based on those scenarios to get an accurate model of how their cluster would perform in real-life situations.
Siege is also an HTTP load testing and benchmarking tool that simulates a number of web browsers hitting a site according to predefined criteria.
IOzone is a file system benchmarking utility. It can comprehensively test the IO performance of various file systems, including distributed file servers in a cluster.
Netperf is a network bandwidth testing tool that can benchmark the bandwidth performance between a pair of hosts on a network.
If we haven’t mentioned a tool that you think should be in the sysadmin’s benchmarking toolbox, feel free to let us know which tools you prefer to use in the comments below.