ArticlePDF Available

Improving Web Server Performance by Caching Dynamic Data

Authors:

Abstract and Figures

Dynamic Web pages can seriously reduce the performance of Web servers. One technique for improving performance is to cache dynamic Web pages. We have developed the Dynamic Web cache which is particularly well-suited for dynamic pages. Our cache has improved performance significantly at several commercial Web sites. This paper analyzes the design and performance of the Dynamic Web cache. It also presents a model for analyzing overall system performance in the presence of caching. Our cache can satisfy several hundred requests per second. On systems which invoke server programs via CGI, the DynamicWeb cache results in near-optimal performance, where optimal performance is that which would be achieved by a hypothetical cache which consumed no CPU cycles. On a system we tested which invoked server programs via ICAPI which has significantly less overhead than CGI, the Dynamic Web cache resulted in near-optimal performance for many cases and 58% of optimal performance in the worst case. The Dynamic Web cache ...
Content may be subject to copyright.
The following paper was originally published in the
Proceedings of the USENIX Symposium on Internet Technologies and Systems
Monterey, California, December 1997
For more information about USENIX Association contact:
1. Phone: 510 528-8649
2. FAX: 510 548-5738
4. WWW URL:http://www.usenix.org/
Improving Web Server Performance by Caching Dynamic Data
Arun Iyengar and Jim Challenger
IBM Research Division, T. J. Watson Research Center
Cache
Manager
Cache 1
Cache 2
Port
Unix Domain
Socket
Application 1
Application 2
Cache
Mgr
Cache 1
Cache 2
Processor 1
Port
Port
Cache
Mgr
Processor 2
Cache 3
Cache 4
Internet Socket
Internet Socket
Processor 3Processor 4
Application
Program 1
Application
Program 2
IBM RS/6000
Model 590
Cache
Manager
ICS 4.2.1
Web Server
Cache driver
program
IBM RS/6000
Model 590
IBM RS/6000
Model 590
IBM RS/6000
Model 590
Webstone
Clients
Webstone
Clients
Webstone
Clients
0
50
100
150
200
250
300
350
400
450
10 100 1000 10000 100000 1e+06
Requests/second
Request Size in Bytes
cache
Web server
Cache 1 Cache 2 WS, Static WS, ICAPI WS, CGI
0
100
200
300
400
Requests/Second
Throughput for Cache and Web Server
Driver Program Cache 2 Cache 1 (est.)
0
100
200
300
Requests/Second
Throughput for Cache Interfaced to Web Server
0
25
50
75
100
125
150
175
200
225
250
275
300
10 20 30 40 50 60 70 80 90 100
System Throughput (Ttp)
Server Program Throughput (stp)
System Throughput with Caching (pdyn = 1)
Hit rate = 1 opt
Hit rate = 1
Hit rate = .8 opt
Hit rate = .8
Hit rate = .4 opt
Hit rate = .4
Hit rate = 0
0
25
50
75
100
125
150
175
200
225
250
275
10 20 30 40 50 60 70 80 90 100
System Throughput (Ttp)
Server Program Throughput (stp)
System Throughput with Caching (pdyn = .5)
Hit rate = 1 opt
Hit rate = 1
Hit rate = .8 opt
Hit rate = .8
Hit rate = .4 opt
Hit rate = .4
Hit rate = 0
0
25
50
75
100
125
150
175
200
225
250
275
10 20 30 40 50 60 70 80 90 100
System Throughput (Ttp)
Server Program Throughput (stp)
System Throughput with Caching (pdyn = .2)
Hit rate = 1 opt
Hit rate = 1
Hit rate = .8 opt
Hit rate = .8
Hit rate = .4 opt
Hit rate = .4
Hit rate = 0
0.1
1
10
100
1000
0.1 1 10 100
Speedup (S)
Server Program Throughput (stp)
Speedup Obtained by Caching (pdyn = 1)
Hit rate = 1 opt
Hit rate = 1
Hit rate = .95 opt
Hit rate = .95
Hit rate = .8 opt
Hit rate = .8
Hit rate = .4 opt
Hit rate = .4
Hit rate = 0
0.1
1
10
100
1000
0.1 1 10 100
Speedup (S)
Server Program Throughput (stp)
Speedup Obtained by Caching (pdyn = .5)
Hit rate = 1 opt
Hit rate = 1
Hit rate = .95 opt
Hit rate = .95
Hit rate = .8 opt
Hit rate = .8
Hit rate = .4 opt
Hit rate = .4
Hit rate = 0
0.1
1
10
100
0.1 1 10 100
Speedup (S)
Server Program Throughput (stp)
Speedup Obtained by Caching (pdyn = .2)
Hit rate = 1 opt
Hit rate = 1
Hit rate = .95 opt
Hit rate = .95
Hit rate = .8 opt
Hit rate = .8
Hit rate = .4 opt
Hit rate = .4
Hit rate = 0
1
10
100
1000
0.1 1 10
Web Servers Serviced (N)
Server Program Throughput (stp)
Web Servers Serviced by Single Remote Cache (pdyn = .2)
Hit rate = 1
Hit rate = .95
Hit rate = .8
Hit rate = .4
1
10
100
1000
0.1 1 10 100
Web Servers Serviced (N)
Server Program Throughput (stp)
Web Servers Serviced by Single Remote Cache (pdyn = .2)
Hit rate = 1
Hit rate = .95
Hit rate = .8
Hit rate = .4
... DynamicWeb [16] caches dynamic pages by providing applications with the DynamicWeb API to cache, invalidate and update caches. DynamicWeb complicates application development and burdens programmers with extra works of using the DynamicWeb API in applications. ...
... The existing server-side cache solutions only work for certain applications by transparently caching static objects [13,14], but our ASPECT caches both static and dynamic objects. They require applications to be developed or reprogrammed for manually caching dynamic objects [15][16][17], but our ASPECT keeps applications intact and automatically caches dynamic objects. They may transparently cache dynamic objects with a limitation of functionality [18][19][20], but our ASPECT transparently caches dynamic objects and supports various functions. ...
Article
Full-text available
Cloud technology uses MapReduce to make computers quickly process a huge amount of data with plentiful resources in clouds, but requires that applications should be developed or reprogrammed to process data in a batch mode of MapReduce. By our solution addressed in this paper, cloud technology no longer poses application writers because our ASPECT solution can: (1) free application writers from burdens of developing or reprogramming an application in the MapReduce programming model; (2) keep the existing application processing data as usual without switching to the batch mode of processing data in MapReduce, and (3) speed up the execution of the application in clouds by reusing or sharing run-time data with other instances of the application.
... Após terem sido identificados pelo sistema de tomada de decisão os pontos que devem ser optimizados e quais as optimizações que devem ser efectuadas, estão reunidas as condições para que o optimizador realize a sua tarefa: efectuar as optimizações à aplicação. Existem várias optimizações que podem ser realizadas, desde optimizações de mais baixo nível, como é o caso da realocação de registos [33], a optimizações de mais alto nível, como é o caso do inlining [6,17,38] ou mecanismos de cache [13,20,32]. ...
Chapter
In order to improve the QoS of applications, clusters of web servers are increasingly used in web services. Caching helps improve performance in web servers, but is largely exploited only for static web content. With more web applications using backend databases today, caching of dynamic content has a crucial role in web performance. This paper presents a set of cache management schemes for handling dynamic data in web clusters by sharing cached contents. These schemes use either automatic or expiry-based cache validation, and work with any type of request distribution. The techniques improve response by utilizing the caches efficiently and reducing redundant database accesses by web servers while ensuring cache consistency. The authors present caching schemes for both horizontal and vertical cluster architectures. Simulations show an appreciable performance rise in response times of queries in clustered web servers.
Chapter
In recent years, Web 2.0 applications have experienced tremendous growth in popularity. Mashups are a key category of Web 2.0 applications, which empower end-users with a highly personalized mechanism to aggregate and manipulate data from multiple sources distributed across the Web. Surprisingly, there are few studies on the performance and scalability aspects of mashups. In this paper, the authors study caching-based approaches to improve efficiency and scalability of mashups platforms. This paper presents MACE, a caching framework specifically designed for mashups. MACE embodies three major technical contributions. First, the authors propose a mashup structure-aware indexing scheme that is used for locating cached data efficiently. Second, taxonomy awareness into the system is built and provides support for range queries to further improve caching effectiveness. Third, the authors design a dynamic cache placement technique that takes into consideration the benefits and costs of caching at various points within mashups workflows. This paper presents a set of experiments studying the effectiveness of the proposed mechanisms.
Article
Data stores and cloud services are typically accessed using a client-server paradigm wherein the client runs as part of an application process which is trying to access the data store or cloud service. This paper presents the design and implementation of enhanced clients for improving both the functionality and performance of applications accessing data stores or cloud services. Our enhanced clients can improve performance via multiple types of caches, encrypt data for providing confidentiality before sending information to a server, and compress data for reducing the size of data transfers. Our clients can perform data analysis to allow applications to more effectively use cloud services. They also provide both synchronous and asynchronous interfaces. An asynchronous interface allows an application program to access a data store or cloud service and continue execution before receiving a response which can significantly improve performance. We present a Universal Data Store Manager (UDSM) which allows an application to access multiple different data stores and provides a common interface to each data store. The UDSM also can monitor the performance of different data stores. A workload generator allows users to easily determine and compare the performance of different data stores. We also present NLU-SA, an application for performing natural language understanding and sentiment analysis on text documents. NLU-SA is implemented on top of our enhanced clients and integrates text analysis with Web searching. We present results from NLU-SA on sentiment on the Web towards major companies and countries. We also present a performance analysis of our enhanced clients.
Chapter
It is generally agreed that the Internet has already become an important media of our daily lives. With its interactive and multimedia abilities, the Internet has an even greater potential than any of the current media such as television or telephone. It is no longer just a media for personal communication and information dissemination, it is also a platform for education, business, and entertainment. This can be reflected by the fact that despite the fluctuation of e-commerce applications, the numbers of Internet users and web pages published on the Internet keep increasing.
Conference Paper
Due to the vigorous development of the network, a variety of application software has been widely used. In order to serve more users, it is necessary to build middleware servers (Application Servers). If the middleware server was overloaded, it will result in poor performance. Besides, it is simply waste of resources if loading was idle. So the server with or without load balancing becomes an important issue. The proposed LAPO algorithm in this paper can dynamically allocate each middleware server for each user. And firstly, it improves the POCA algorithm that spends a lot of computation time to determine the optimal combination of solutions. Secondly, it can uniformly distribute each user on the servers; and finally, propose the model for best combination of load balancing solution. By using the SAP ERP ECC 6.0 for implementation, this study can verify that the LAPO is not only more efficient in computation time than POCA, but also more in line with the actual situation of the enterprises use. Moreover, we comment the results of experiments and some limitations.
Conference Paper
Full-text available
World-Wide Web proxy servers that cache documents can potentially reduce three quantities: the number of requests that reach popular servers, the volume of network traffic resulting from document requests, and the latency that an end-user experiences in retrieving a document. This paper examines the first two using the measures of cache hit rate and weighted hit rate (or fraction of client-requested bytes returned by the proxy). A client request for an uncached document may cause the removal of one or more cached documents. Variable document sizes and types allow a rich variety of policies to select a document for removal, in contrast to policies for CPU caches or demand paging, that manage homogeneous objects. We present a taxonomy of removal policies. Through trace-driven simulation, we determine the maximum possible hit rate and weighted hit rate that a cache could ever achieve, and the removal policy that maximizes hit rate and weighted hit rate. The experiments use five traces of 37 to 185 days of client URL requests. Surprisingly, the criteria used by several proxy-server removal policies (LRU, Hyper-G, and a proposal by Pitkow and Recker) are among the worst performing criteria in our simulation; instead, replacing documents based on size maximizes hit rate in each of the studied workloads.
Conference Paper
Full-text available
This paper discusses the design and performance of a hierarchical proxy-cache designed to make Internet in- formation systems scale better. The design was motivated by our earlier trace-driven simulation study of Internet traffic. We challenge the conventional wisdom that the benefitsof hierarchical filecaching do not merit the costs, and believe the issue merits reconsideration in the Internet environment. The cache implementation supports a highly concurrent stream of requests. We present performance measurements that show that our cache outperforms other popular Inter- net cache implementations by an order of magnitude under concurrent load. These measurements indicate that hierar- chy does not measurably increase access latency. Our soft- ware can also be configuredas a Web-server accelerator; we present data that our httpd-acceleratoris ten times faster than Netscape' s Netsite and NCSA 1.4 servers. Finally, we relate our experience fittingthe cache into the increasingly complex and operational world of Internet in- formation systems, including issues related to security, trans- parency to cache-unaware clients, and the role of filesystems in support of ubiquitous wide-area information systems.
Article
A fundamental trend for servers in network-centric computing environments is to evolve from traditional database and transaction servers to information distribution and handling systems. In addition to documents written in the HyperText Markup Language (HTML), data stored in other forms can be retrieved through the Common Gateway Interface (CGI). A significant performance bottleneck is the initialization and setup phase for a CGI process to gain access to a backend server. In this paper, we describe the design and implementation of distributed Web server for CGI processes to acquire services efficiently. A Connection Manager Daemon (CMD) is developed to provide a number of cliettes, which are connected to backend servers to eliminate initialization costs for incoming requests. A Cache Manager is implemented to speedup response time in case of repeated requests. We also trace and monitor the Connection Manager Daemon as well as its clients using extended UTE (Unified Trace Environment) tools, and present its performance analysis and visualization. The platforms where we conduct this study include a single-node workstation, a cluster of workstations, and an IBM Scalable Parallel (SP) system.
Article
This paper proposes the concept of a domain cache, which is dedicated to handling access to a particular domain name, and reports experiments in the Japan Cache Project which operates a public cache server for access to JP (Japan) domain web servers. The goal of this project is to spread information about Japan to North America. This project included some experiments in prefetching information to makes use of less crowded access times, maintaining the coherence between the cache server and primary servers by primary server refresh, and operating a cache replication server, which keeps the primary server information in the cache and functions not as a proxy server but as an HTTP server.The high cache hit ratio obtained suggests that domain caching is an effective cache server operation method. However, we could not perform effective prefetching because of the difficulty in predicting user accesses. Coherence maintaining and cache replication server mechanisms were created. We appeal for cooperation from servers in Japan.
Article
A WWW proxy server, proxy for short, provides access to the Web for people on closed subnets who can only access the Internet through a firewall machine. The hypertext server developed at CERN, cern_httpd, is capable of running as a proxy, providing seamless external access to HTTP, Gopher, WAIS and FTP.cern_httpd has had gateway features for a long time, but only this spring they were extended to support all the methods in the HTTP protocol used by WWW clients. Clients do not lose any functionality by going through a proxy, except special processing they may have done for non-native Web protocols such as Gopher and FTP.A brand new feature is caching performed by the proxy, resulting in shorter response times after the first document fetch. This makes proxies useful even to the people who do have full Internet access and do not really need the proxy just to get out of their local subnet.This paper gives an overview of proxies and reports their current status.
Article
The quality of the service provided by the World Wide Web, namely convenient access to a tremendous amount of information in remote locations, depends in an important way on the time required to retrieve this information. This time in turn depends on a number of parameters, in particular the load at the server and in the network. Overloads are avoided by carefully dimensioning the server (so that it has enough resources such as CPU power and disk space to handle expected requests) and the network (so that it has enough resources such as bandwidth and buffers to transport requests and replies), and by using mechanisms such as caching that minimize the resource requirements of user requests. In this paper, we consider performance issues related to dimensioning and caching. Our contribution is twofold. Regarding dimensioning, we advocate the use of time series analysis techniques for Web traffic modeling and forecasting. We show using experimental data that quantities of interest such as the number of Web requests handled by a server, or the amount of data retrieved per hour by a server, can be accurately modeled with time series such as seasonal ARIMA models. We then use these models to make medium-term predictions of client requests characteristics (number of such requests and size of document retrieved), which in rum can be used as a basis for dimensioning decisions. Regarding caching, we advocate the use of novel cache replacement algorithms that explicitly take document size and network load into account so as to minimize the retrieval time perceived by clients.
Article
This paper presents a new Web cataloguing strategy based upon the automatic analysis of documents stored in a proxy server cache. This could be an elegant method of Web cataloguing as it creates no extra network load and runs completely automatically. Naturally such a mechanism will only reach a subset of Web documents, but at an institute such as the Alfred Wegener Institute, due to the fact that scientists tend to make quite good search engines, the cache usually contains large numbers of documents related to polar and marine research. Details of a database for polar, marine and global change research, based upon a cache scanning mechanism are given, and it is shown that it is becoming an increasingly useful resource.A problem with any collection of information about Web documents is that it quickly becomes old. Strategies have been developed to maintain the database consistency with respect to changes on the Web, while attempting to keep network load to a minimum. This has been found to provide a better quality of response and it appears to be keeping information in the database current. Such strategies are of interest to anyone attempting to create and maintain a Web document location resource.