|
> |
Web Booster Architecture
Traffic to a web server is unpredictable and very peaky. To avoid losing or alienating clients, web servers are overbuilt to handle the peak load. Consequently, there are huge investments in local infrastructure at web sites that are significantly underutilized except for infrequent peak periods. The web booster architecture enables instantaneous decreasing of request processing costs for both static and dynamic resources on a web server in response to transient peaks in load. During a period of peak traffic, client requests are redirected to a web booster, an appliance that is located in front of the web server, which pre-processes requests and forwards them to the web server in an optimized request stream. The request stream is processed by the accelerator software module that runs on the web server. Such request pre-processing reduces web server load up to an order of magnitude compared to processing of an unmodified requests. Using a web booster has advantages over using additional web servers or caches for the same purpose. Booster sharing among multiple web servers is more effective and fine-grained because the booster can instantaneously switch from one web server to another. An additional web server or cache require memory cache "warm-up" by accessing local storage, shared file system or remote web server before handling requests for the overloaded server. A web booster offloads processing for both static and dynamic resources, while caching can be used only for static web resources and server replication requires explicit installation of services. Because a booster processes requests at the transport and network levels, rather than at the application level as caches do, all HTTP-level semantics is retained at the web servers, including such features as request logging and resource invalidation policies. The web booster uses several techniques that decrease overhead of the network processing at the web server. They are based on decreasing the number of packets processed by the server. It is accomplished by the following:
The accelerator module that runs on the web server further decreases request processing cost by:
The web booster has to handle double network traffic compared to a web server. Four novel techniques significantly improve the performance of the web booster. Unlike techniques for web server acceleration, which do not modify the operating system or the protocol stack, these techniques modify the booster's TCP/IP stack to improve common case for network processing at the booster. The first two techniques optimize the receive path for packet processing and the last two deal with packet sending. They are as follows:
The web booster architecture decreases overhead at the web servers up to ten times, retaining all HTTP processing semantics at the web servers. As tests show, the web booster handles an un-optimized client request stream four times faster than general purpose web server by using specialized software. This makes it possible to use two web boosters and one web server with the equivalent capacity of eight stand-alone web servers, assuming that all machines are of the same platform. There are several ways in which the web booster functionality can be extended:
For more information on the web booster project, read the following articles: Dissertation
Papers and Technical Reports
Last revised: 05/01/2002 |