CS290I - Scalable Internet Services and Systems
Thorsten von Eicken - UCSB - Winter 2002
 

Project 4 HowTo - Testing the Auctions Site

Load generator

We have written a client program to generate robot requests to your servers. This is a C program compiled for Solaris/Sparc architecture, so you can only use it on Sparc machines (i.e., do not try it in the GSL machines since they are mostly Intel). We recommend you run it from porsche, maserati or corvette, where we have enabled you to log in with your CS account and home directory. That means that you should be able to copy the program to your normal CS home directory and be able to access it from any of the cited machines.
 
To run the program you must have the init/trace files (generated with the perl program described below).
The syntax of the client program is:

./client -h host -p port -i initFile -f traceFile -n connections -o outfile

The output file will contain a single line per received response with the format: requestid code description By taking a look at this file, you should be able to see if your robot pages return the appropriate content.

An example of testing would be:

./client -h lotus -p 8000 -i OUT.init -f  OUT.trace -n 1 -o myOutput.txt

The client gives some information about throughput and errors encountered. We are going to use a beefed-up version of this client to do the performance measurements. An example output from the client looks like:

Using 1 persistent connections
Read 30 requests
.MGR[0] 31 - 31 GP: 298.622
Totals for 1 connections:
Requests  : 31
Responses : 31
Retrans   : 0
HTTP Err  : 0
App Err   : 0
App Unknwn: 0
GOODPUT   : 298.622
WALL TIME : 0.097894 secs

Trace generator

You can use the genload.pl perl script to generate trace files that contain newAuction and newBid requests.
Run the script and you will get two files: OUT.init and OUT.trace
These two files correspond to the init and trace files that you must use with the load generator.

NOTE: you may have to change the path to the perl program (first line of the script) if perl is not located in /usr/bin.