Measuring the Capacity of a Web Server

Measuring the Capacity of a Web Server
There is an exponential growth in the use of the World Wide Web which in turn has placed performance
demands on network servers. Improving the performance of the web is the main concern. Various
aspects such as Web caching, HTTP protocol enhancement, better HTTP server and proxies, server OS
implementations need to be addressed. Web software performance mainly concentrates on
characterizing Web server workloads accurately in terms of request file types, transfer sizes, locality of
reference in URLs requested et al. To evaluate the performance of Web Servers and proxies researchers
have tried using real workloads directly, this approach comes with a drawback of non intrusive
measurement of a live system and difficulty in reproducing live workloads. Synthetic HTTP client traffic
generation was also used for evaluation of the web traffic. However this was also associated with
problems that arise in generating heavy web traffic using limited client machines. There were also
differences due to WAN based web. The paper meticulously explains the HTTP Connection timelines
along with essential TCP/IP details. While conducting experiments to measure the performance of a
web server, due to reduced cost and ease of control, small number of client machines is used to
simulate a large Web client population. The major problem was numerous pitfalls that one encounters
while measuring the web server capacity using a synthetic workload.
The paper describes the design of a new method to generate web traffic. For evaluation of WAN effects
the client machine should be connected to the server through a router. S client consists of a pair of
processes connected by a UNIX domain socket pair. Connection establishment process generates HTTP
request at a certain rate. HTTP request is sent to the server after a connection is established. The
connection is then passed to the connection handling process which in turn handles the HTTP response.
D sockets are used in non blocking mode by the process while opening D connections to the server. It
uses non-blocking connect and closes the socket if no connection was established after T seconds. It
allows the generation of the request rates beyond the capacity of the server with a reasonable number
of client sockets. Thus it shortens TCP’s connection establishment timeout. Generated request rate is
independent of the rate at which the server handles the request. Once request rate matches the
capacity of the server the additional queuing delay in the server’s accept queue does not reduce the
request rate of the simulated client. Hence a constant number of unconnected sockets that are trying to
establish and the new connections are maintained. The scheme uses a constant think time chosen to
achieve certain constant request rate.
The methodology has been successfully evaluated that can generate bursty traffic with peak loads that
exceed the capacity of the server. The new methodology described in the paper enables the evaluation
of an important performance aspect of the web servers. With the ever increasing use of World Wide
Web evaluation of the web server performance is of utmost importance which can now be achieved by
the above stated mechanism. The paper has not taken into consideration real world scenarios like
network congestion et al which can cause the delay. The methodology should be modified to
incorporate such real world scenarios.