Yaksha: A Self-Tuning Controller for Managing the Performance of 3-Tiered Web Sites Abhinav Kamra, Vishal Misra CS Department Columbia University Erich Nahum IBM TJ Watson Research Center
Dynamic Content Online shopping Amazon, BestBuy News snippets Current weather conditions Real-time stock tickers
Dynamic Content Generation 3-Tier Structure: Web Server: Static web pages App Server: CGI / Java servlets Database Server: Backend Data Store http Database Server Web Server App Server
Major Problems Overloaded Web Sites: The “Slashdot Effect” Unanticipated load causes site to crash Unresponsive Web Sites: The “Abandoned Shopping Cart’’ Unacceptable delays lead to reduced usage
Admission Control To prevent overload, perform admission control: Notion of capacity in the system Identify the job ahead of time & amount of work generated Only let jobs in if they won’t overload system Once you reach full capacity: Make jobs wait Drop jobs Load Throughput Actual Ideal
Why Self-Tuning ? Parameter Setting Lots of experimentation Workload characterization Re-done for every system change
Outline Motivation & Background The ‘Yaksha’ Controller Architecture Modeling Design Self-Tuning Experimental Environment Experimental Results Summary and Conclusions
The ‘Yaksha’ Controller Architecture Intercepts HTTP requests Decides whether to accept or reject new connections Maintains several measurement-based estimates: Per connection Response and Sojourn times Per customer-class based estimates Per query-type based estimates http Database Server Web Server App Server Yaksha Clients
Reference Input = Desired Response/Sojourn times = Incoming job acceptance probability Modeling Web Server Controller + –
Modeling System Abstraction M/GI/1 Processor Sharing Queue Linearization approximation Open loop transfer function
Proportional Integral (PI) Control Zero steady state error Closed loop transfer function Design
Design (contd.) Setting system parameters Fix controller time constant to 10 sec Fix phase margin at 45 degrees Bilinear transform to convert to digital form
Self-Tuning ‘Pure gain’ open loop transfer function Effective arrival rate ‘Tuned’ transfer function Running average for p a
Parameter Setting Parameters w/o Self-Tuning Expected input rate Expected connection drop rate Target response time Parameters with Self-Tuning Target response time
Outline Motivation & Background The ‘Yaksha’ Controller Experimental Environment Setup & Methodology Software & Hardware Experimental Results Summary and Conclusions
Experimental Setup Workload Generator SQL Database ServerWeb/App Server Lightweight Proxy Controller
http TomcatMySQL SQL Emulated Clients Emulated Clients Remote Browser Emulator Session duration Think time Markov model Load is a function of the number of clients
Software Workload GeneratorTPC-W Lightweight ProxyTinyproxy Web/App ServerTomcat Database ServerMySQL Workload Generator SQL Database ServerWeb/App Server Lightweight Proxy Controller
Hardware CPUIntel Pentium 1.7 GHz Memory512 MB Disk12 GB, 12 ms, 5400 RPM Network100 Mbps Ethernet http Tinyproxy/ Tomcat MySQL SQL TPC-W Client
Outline Motivation & Background The ‘Yaksha’ Controller Experimental Environment Experimental Results Response time control Throughput control Self-tuning Model validation Summary and Conclusions
Results: Response time control
Results: Throughput control
Results: Self-tuning
Results: Model Validation
Summary & Future Work Presented the ‘Yaksha’ Control System PI admission control for http connections Overload prevention Response time bounds Self-Tuning Control Future Work Throughput maximization
Thank You!
Related Work Admission Control for Static Content Web Servers: Bhatti99, Li00, Voigt01, Pradhan02 Provide throughput/response time/BW guarantees Control Tarek01, Tarek02, Hellerstein01, Hellerstein02, Welsh03 Control theory for resource management Admission control for Apache, Lotus notes Dynamic Content: Dynaserver project at Rice TPC-W Benchmarks
Results: Throughput control - P a