Controlling the performance of 3-tiered web sites: modeling, design and implementation

E-Commerce is rapidly becoming an everyday activity as consumers gain familiarity with shopping on the Internet. The infrastructure behind E-Commerce Web sites is typically composed of a three-tiered architecture, consisting of a front-end Web server, an application server and a back-end database. Two problems are frequently encountered with deploying such Web sites. First is overload, where the volume of requests for transactions at a site exceeds the site’s capacity for serving them and renders the site unusable. Second is responsiveness, where the lack of adequate response time leads to lowered usage of a site, and subsequently, reduced revenues. This paper presents a method for controlling multiple-tiered Web site performance, both by bounding response times and preventing overload. Our approach uses a self-tuning proportional integral (PI) controller for admission control, enabling overload protection and bounding response time based on an administrator-based policy (e.g., 90 percent of the requests should see a response time of less than 100 milliseconds). By using a self-tuning controller, our system automatically adapts to variation in load and requires only two parameter settings. Our method requires no changes to the operating system, Web server, application server or database. This allows rapid deployment and use of pre-existing components. We present an implementation of our controller in a proxy, called Yaksha. We evaluate our system with standard software components used in multiple-tiered e-Commerce Web sites, namely Linux, Apache, Tomcat, and MySQL. We drive the system using the industry-standard TPC-W [2] benchmark, and demonstrate that Yaksha achieves both stable behavior during overload and bounded response times. Our results show that a properly designed and implemented controller be used in a complex environment, such as multi-tiered Web sites.