ApacheBench


ApacheBench is a single-threaded command line computer program for measuring the performance of HTTP web servers. Originally designed to test the Apache HTTP Server, it is generic enough to test any web server.
The tool comes bundled with the standard Apache source distribution, and like the Apache web server itself, is free, open source software and distributed under the terms of the Apache License.

Example usage


ab -n 100 -c 10 "http://en.wikipedia.org/wiki/Main_Page"

This will execute 100 HTTP GET requests, processing up to 10 requests concurrently, to the specified URL, in this example, "http://en.wikipedia.org/wiki/Main_Page".

Concurrency versus threads

Note that ApacheBench will only use one operating system thread regardless of the concurrency level. In some cases, especially when benchmarking high-capacity servers, a single instance of ApacheBench can itself be a bottleneck. When using ApacheBench on hardware with multiple processor cores, additional instances of ApacheBench may be used in parallel to more fully saturate the target URL.

Detecting ApacheBench

The ApacheBench User Agent string is where MAJOR and MINOR represent the major and minor version numbers of the program. It is usually not correctly categorised by web server log analysers such as Webalizer or AWStats, so running ApacheBench with a great number of requests may skew the results of the reports generated by these programs.