Siege is an http load testing and benchmarking utility. It was designed to let web developers measure their code under duress, to see how it will stand up to load on the internet. Siege supports basic authentication, cookies, HTTP and HTTPS protocols. It lets its user hit a web server with a configurable number of simulated web browsers. Those browsers place the server “under siege.”
Siege was written on GNU/Linux and has been successfully ported to AIX, BSD, HP-UX and Solaris. It should compile on most System V UNIX variants and on most newer BSD systems. Because Siege relies on POSIX.1b features not supported by Microsoft, it will not run on Windows. Of course you can use Siege to test a Windows HTTP server.
A sample command to envoke siege:
siege -c 32 -i -t 60m -d 5 -f url_list.txt
url list was a list of links, composed from the following command:
for i in `seq 1 80000`; do echo "http://domain.com/$i >> url_list.txt;done
This simulates 32 clients connecting simultaneously, requesting a random url,
with a new one requested every 5 seconds by each client. To get load really
high (past the 3-4 mark) I usually had to invoke two of these simultaneously,
from separate servers.
Siege is available from the following link: