Staying Out of Deep Water: Performance Testing Using HTTPD-Test’s Flood

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 down…

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.See the full article for details on using Flood with your websites.