For users of Linux servers, it’s important to have a solid idea of exactly what that server is capable of. This is particularly important if your business depends on your server. If a web server becomes overloaded, the sites it is serving will perform poorly, and that can lead to lost customers and revenue.
Having a clear conception of the limits of a server allows business to plan ahead for scaling and infrastructure investment, an essential aspect of maintaining good user experience and business continuity. There are a number of tools that are freely available for benchmarking Linux servers, and in this article we’d like to highlight some of our favorites.
SysBench is an easy-to-use test suite for load testing memory performance, CPU performance, and disk I/O, among others. It’s less full-featured than the more comprehensive testing suites we’ll be looking at but it’s more than sufficient to give Linux system administrators a broad idea of the capabilities of their system.
If you’re a CentOS user, SysBench is included in the standard repositories and you can install it with
yum install sysbench
There’s a great tutorial on HowtoForge that explains how to use SysBench to benchmark file I/O, CPU performance, and MySQL database performance, and you should also check out the full documentation for a complete overview of SysBench’s capabilities.
Most hardcore Linux users will be familiar with the Phoronix site, which specializes in Linux hardware reviews, benchmarking, and gaming. The test suite they use for their own reviews is freely available.
The Phoronix Test Suite is an enterprise-grade tool for comprehensive automated testing and benchmarking of Linux systems. A full appraisal of its features would require a dedicated article, but among the highlights are:
- More than 90 test suites for benchmarking different server components
- The Phoromatic web interface for remote management and scheduling of tests
- An integrated graphing library for outputting results
- A live distribution for reliable hardware comparisons
Phoronix is probably the most comprehensive, easy-to-use benchmarking suite available for Linux. You can download it from the Phoronix site.
IOZone is a dedicated filesystem benchmarking tool for testing a range of IO performance metrics. This is the best tool to use if you need comprehensive and detailed information about the performance of file I/O operations on your server.
IOZone is not available in the default CentOS repositories, but you can get it from RepoForge. If you need further information on installing software from RepoForge, take a look at our recent article that explains how to add new repositories to CentOS.
Web Server Benchmarking
To test web servers under real-world conditions, system administrators need a set a tools that will realistically simulate load.
Siege is an HTTP-based benchmarking tool for testing the load capabilities of a website. It’s an excellent tool for testing how a server and the code it is running respond to heavy load. Siege simulates a configurable number of web browsers which will hit the site with requests, enabling system administrators to get a good idea of how their code and their server stands up to the vicissitudes of real-life load spikes.
The Gatling Stress Tool is also used for testing a site under load, but it is specifically designed to test the site’s interactive features. This is especially useful for eCommerce sites, but it can be used with any site where testing of the performance of interactive features is required. Gatling can be configured to carry out multi-step actions to realistically mimic the behavior of a human user. For example, Gatling can be scripted to run through the actions typical of an online shopper, including browsing products, adding products to a shopping cart, and checking out.
We’ve tried to cover a reasonable cross-section of some tools that Linux system administrators can use to gain an insight into their server’s performance and limitations. If you think there’s a tool we should have included, feel free to give them a mention in the comments!