How to Stress Test an Apache Server using AB (Apache Benchmark)

Using a benchmarking tool to test the limits of your apache server will help you prepare for upgrades.

Installing AB on CentOS (with cPanel)

cPanel adds in an exclusion for all packages named httpd* (any files starting with httpd) to prevent accidentally overwriting apache.

SSH into your server.

Edit /etc/yum.conf and remove the entry httpd* from the Exclude line

vi /etc/yum.conf

exclude=bind-chroot courier* dovecot* exim* filesystem httpd* mod_ssl* mydns* mysql* nsd* php* proftpd* pure-ftpd* spamassassin* squirrelmail*

Once the entry has been removed, save the config file and exit.

Run the following command to install ab.

yum install httpd-tools

Make sure to go back into the /etc/yum.conf and add httpd* back to the exclude list, otherwise you risk breaking your cpanel installation.

Installing AB on Debian/Ubuntu

SSH into your server (or if you are using a desktop open a terminal)

Run the following command to install ab.

sudo apt-get install apache2-utils

Running a stress test

Once you have the program installed, you can run a stress test against a domain name.

WARNING: Do not use this against a site you do not control as it will be considered an attack.

Here is an example of a stress test that will simulate 100 users simultaneously making accessing a website.

ab -c 100 -n 100 -r

You can check the manual for ab to find out more information about it's options.