| |
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
- Host and port are your assigned machine and HTTP port
- InitFile and traceFile are the generated files from the perl script.
- Connections are the number of connections that the client will open
simultaneously to your server. (This version of the client has a limit of 1)
- Outfile is the name of the file where the "responses" will be saved.
The output file will contain a single line per received response
with the format: requestid code description
- requestid is the order of the request (not important)
- code can be OK, ERROR or UNKNOWN
- description is a snippet from the second line of the response (i.e. error
description if it is an error code, comma separated fields if it was a success
or whatever contents was returned if it was an UNKNOWN)
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.