Siege by Joe Dog Software is a great utility for quickly getting some useful data about the load handling capabilities of almost any web application. If you already have siege skip to the end where I lay out some usage tips.

If you need to Install Siege

Upgrade software (Debian apt):

sudo apt-get update && sudo apt-get upgrade

On Debian you can simply:

wget http://download.joedog.org/siege/siege-latest.tar.gz

Extract the program:

tar -zxvf siege-latest.tar.gz

Change to Siege directory:

cd siege-*/

Configure and complete the install:

./configure
make
sudo make install

Generate a configuration file:

./siege.config

Let’s Run Siege

Running Siege is easy, try just the defaults along with your domain or IP address:

siege www.example.com

You should see some useful output. Now let’s set some variables and really stress the server. Two critical options that need to be set are the number of concurrent users (-c, default is 10) and the duration of the test in terms of either repetitive queries or time (-t). Let’s start with a simple example of 25 concurrent users for one minute.

siege -c25 -t1M www.example.com
** Siege 2.59
** Preparing 25 concurrent users for battle.
The server is now under siege...
Lifting the server siege... done.
Transactions: 406 hits
Availability: 99.75 %
Elapsed time: 59.66 secs
Data transferred: 10340918 bytes
Response time: 2.36 secs
Transaction rate: 6.81 trans/sec
Throughput: 173330.84 bytes/sec
Concurrency: 16.07
Successful transactions: 412
Failed transactions: 1

Some of the other commonly used options for this would be –v (verbose) and –d to set a delay (the default is 0).

Another good tip is to use Siege to hit a number of pages on your website at random.  Simply configure the program to read from a urls.txt file that lists the selected pages:

siege -f path/to/your/urls.txt

Happy sieging! Check out the official Siege manual for more information.