Once you've set up your server and users are accessing your Web site, the last thing you want to hear about are performance problems with the site. You can test the
system manually, but there are limitations to manual-based testing.
One major downside of manual testing (aside from the time investment) is that it doesn't reveal where the real problem with the site lies. Is it a configuration problem
with the server, a problem with some dynamic elements, or a more fundamental network
performance issue?
The Apache HTTP Project includes a sub-project called HTTPD-Test. As the name
suggests, it's a test suite for Apache and HTTP in general. The suite contains a number of different elements, and this article will focus on the one known as Flood.
Flood is so named because it is used to flood an HTTP server with requests to test its response times.
Flood uses an XML document with the necessary settings -- URLs and optional POST
data -- to send requests to a given server or range of servers. Flood then measures the time it takes to:
- Open the socket to the server
- Write the request
- Read the response
- Close the socket
With these four criteria being measured, administrators can identify whether the problem is with the Apache configuration (or any other HTTP server), the sheer load and performance of the hardware, or a network bottleneck.
Installing Flood
You can download the packages -- httpd-test and apr/apr-util -- required for
building from the CVS server at Apache. You'll need to log in first though (the password is
'anoncvs'):
$ cvs -d :pserver:anoncvs@cvs.apache.org:/home/cvspublic login
$ cvs -d :pserver:anoncvs@cvs.apache.org:/home/cvspublic co httpd-test/flood
$ cd httpd-test/flood
$ cvs -d :pserver:anoncvs@cvs.apache.org:/home/cvspublic co apr
$ cvs -d :pserver:anoncvs@cvs.apache.org:/home/cvspublic co apr-util
|
Once you have the source, you must build and compile the application using:
$ buildconf
$ configure
$ make all
|
You're now ready to go!