Webjamma plays back http accesses read from a log file. It maintains a configureable number of parallel requests, and keeps them busy continuously.
Webjamma was originaly written to torture-test a http proxy server. It was then extended to send the requests to multiple servers at once, and used to compare the behavior of the multiple servers under the same network load and network conditions.
Webjamma is controled with a text configuration file:
# # servers to send the requests to. # all the servers will be sent all the traffic # server researchsmp2.cc.vt.edu 3128 server researchsmp2.cc.vt.edu 3228 server researchsmp2.cc.vt.edu 3328 server researchsmp2.cc.vt.edu 3428 # # max parallel requests # each parallel request requires one unix process. # This is also max parallel per server, so there will really be # maxpar * numservers # maxpar 10 # # log file to read the traffic from. # multiple log files will be concatinated. # log /tmp/tjohnson/lab.log.shorter log /tmp/tjohnson/lib.log.shorter # # number of times to repeat all the log files # repeat 1 # # initial timeout (in seconds): delay from the request transmission to # first block recieved before giving up. # inittimeout 30 # # timout (in seconds): delay between blocks of data before giving up # timeout 30
The log files are simply text files with one URL per line. A method can be specified to load the URL with, the supported methods are GET (the default), PUSH, PURGE.
If the PUSH method is used, three methods to specify the content can be used:
Example:
http://www.vt.edu/ GET http://www.vt.edu/ PUSH http://www.vt.edu/ www.vt.edu.body PURGE http://www.vt.edu/
The file www.vt.edu.body would then contain something like:
HTTP/1.0 200 OK Content-type text/html This isn't VT's home page.
The first two lines are equivelant, no method means use GET. The third line will PUSH the specified URL, using www.vt.ed.body as the content to push. The fourth line will then delete the URL. The PUSH method is an experimental addition to HTTP used to transfer content from one cache to another.
Webjamma is named after either the type of boat, or what it does to your network.