This section identifies problems that arise when trying to measure the performance of a Web server, using a testbed consisting of a limited number of client machines. For reasons of cost and ease of control, one would like to use a small number of client machines to simulate a large Web client population. We first describe a straightforward, commonly used scheme for generating Web traffic, and identify problems that arise.
In the simple method, a set of N Web client processes execute on P client machines. Usually, the client
machines and the server share a LAN. Each client process repeatedly
establishes a HTTP connection, sends a HTTP request, receives the
response, waits for a certain time (think time), and then repeats the
cycle. The sequence of URLs requested comes from a database designed
to reflect realistic URL request distributions observed on the
Web. Think times are chosen such that the average URL request rate
equals a specified number of requests per second. N is typically
chosen to be as large as possible given P, so as to allow a high
maximum request rate. To reduce cost and for ease of control of the
experiment, P must be kept low. All the popular Web benchmarking
efforts that we know of use a load generation scheme similar to this
[26, 28, 29, 30].
Several problems arise when trying to use the simple scheme described above to generate realistic HTTP requests. We describe these problems in detail in the following subsections.