The sleeping time in the child process models the delay in the Internet and the server seen by the proxy. We feel that it is important to model this delay because in practice, latency in serving HTTP requests affects the resource requirement at the proxy. Originally, we set the sleeping time to be a random variable from 0 to 10 seconds, to reflect the varying latency seen by the proxy. In our preliminary testing, in order to reduce the variability between experiments, we have change the latency to be a constant number of seconds that can be set through a command line argument. We are still investigating whether variable latencies would expose different problems in proxy performance from constant latency. For now, we recommend using a constant latency (see below, benchmarking rules).
Currently, the server process does not support other types of GET requests, such as conditional GET, which we will fix soon. The server process also gives the fixed last-modified-date and time-to-live for every response, which would be changed as we learn more about the distribution of TTL in practice.
The server program uses two different file size distributions.
The default distribution is very primitive. It is basically a uniform
distribution from 0 to 40K bytes for 99% of the requests, and
1MB for 1% of the requests. It is also possible to use a more
realistic file size distribution, such as the heavy tail
Pareto distribution. In this case, the two parameters of the
distribtuion, and k, must be
specified in the configuration file. The parameter k represents the
minimum file size and
is such that the average file size av
is given by
.
Typical values of
and
k are 1.1 and 3.0KB, as shown in [4].