ArsDigita Traffic Jamme

Part of the ArsDigita Server Architecture

This page was last updated on April 5, 1999


One of the more common requests to float across the world is "How do I apply a heavy load to my server for testing purposes". Simulating heavy traffic is easy. Simulating heavy traffic well is a hard problem.

There are all sorts of benchmarking and load tools out there which can create lots of simultaneous connections and slurp down tons of data. It's also pretty easy to write your own.

It's very easy to run such a test like and declare "We can handle 100 simultaneous users and saturate our FDDI ring too". The main problem with tools like these is that they are too nice. They don't disconnect abnormally. They don't have high latencies and slow response. They don't tie up a web server connection for a couple of minutes. They don't send bad requests. They don't have truly random in-the-large behavior.(e.g. WebStone marches through a dozen URLs as opposed to a dozen Real People hitting your discussion group main page all at the same instant and your Illustra database deadlocks) The same system that easily handles hundreds of simulated users can fall over with 20 Real Life users.

So, have we solved all of these problems with ArsDigita Traffic Jamme? Nope. It's just a simple easy-to-write tool that creates lots of simultaneous connections that slurp down tons of data. Why write Yet Another Simple Tool? We wanted a tool that didn't require someone to compile (or port) a C program, that doesn't require Perl and Perl libraries, and one that works with AOLserver, since that's what we use around here. Also, in the future, we may want to have a tool with some intelligence that generates the next request as a function of the previous request, say to apply a load to a shopping service.

Installing ArsDigita Traffic Jamme

Running a simple test

Running a CSV test

Just hammering the same URL over and over isn't necessarily all that interesting. You can also supply a comma-separated-value (CSV) file that specifies the URLs to fetch, along with any form data you wish to pass along. A sample CSV file is provided in the Traffic Jamme distribution.

Note, that if you want to run a CSV test, you'll need to have a database configured as well. (this test relies on the ns_getcsv call, which is only available if there is a database available) This means you'll need [ns/db/drivers], [ns/db/pool/pool-name], [ns/db/pools], and [ns/server/server-name-db] entries. It's OK if the number of connections allowed is zero and there's blank user and password entries in the database configuration.

Writing your own test

Random Notes

Known Problems

Future Directions


markd@arsdigita.com