330 likes | 453 Views
Design and Evaluation of a Model for Multi-tiered Internet Applications. Bhuvan Urgaonkar Internship project talk – Services Management Middleware Dept, IBM Aug. 20, 2004. Internet Data Centers. Internet applications run on data centers Server farms
E N D
Design and Evaluation of a Model for Multi-tiered Internet Applications Bhuvan Urgaonkar Internship project talk – Services Management Middleware Dept, IBM Aug. 20, 2004
Internet Data Centers • Internet applications run on data centers • Server farms • Provide computational and storage resources • Service-level agreements • Response time guarantees • Problem: Need good application models to determine right resource allocations
requests Load balancing gateway database http J2EE Multi-tiered Applications • Internet applications: multiple tiers • Example: 3 tiers: HTTP, J2EE app server, database • Replicable components • Example: clustered HTTP, J2EE server
Existing Application Models • Several models for single-tier apps • Queuing models for web servers: Chase et al (USITS 03), Chandra et al (IWQoS 2003) • PODC 2004: G/G/1 based model • Model only one (bottleneck) tier • Ranjan et al (IWQoS 2002), Villela et al (IWQoS 2004)
Black-box Approach • Black-box approach • Treat application as a black-box • Measure response time from outside • Increase allocation if response time > SLA • Use a model to decide how much to allocate • Strawman #1: black-box for multi-tier apps • Problems: • Unclear which tier needs more capacity • Bottleneck tier may not be replicable
Extension of Single-tier Model • Strawman #2: use single-tier provisioning independently at each tier • Example: • Breakdown resp time into per-tier delays • Use G/G/1 model for each tier • Problems: • How to breakdown resp time? • G/G/1 based model found to be very conservative! • Wasted capacity
Talk Outline • Motivation • Multi-tier Application Model • Preliminary Evaluation • Ongoing Work / Discussion • Summary
Key Insights/Observations • Tier i requests service from tier (i+1) • Scheduling: PS closest tractable among policies • Session-based workloads: • A session consists of a succession of requests • Think times are user dependent • Quantity of interest: Per-request resp time requests Load balancing gateway database http J2EE
Queuing-theoretic Model • Example: 3-tier application • Natural model: Network of queues shown below X_2 X_3 X_1 Z . . . • Capturing session-based workload • Infinite server system • Closed-queuing system
Mean-value Analysis • MVA algorithm • Inputs: Avg service times, visit ratios • Computes avg. delays and resp. time E[Z] E[X_3] E[X_2] E[X_1] . . . Visit ratios V_0=1 V_2 V_1 V_3
MVA Algorithm • Key relation: Am(N) = Qm(N-1) • Am : # customers an arriving customer finds in queue m • Qm : # customers in queue m for m = 1 to M do Qm = 0 for n = 1 to N do begin for m = 1 to M do Rm = Dmfor the infinite server Rm = Dm*(1+Qm) for other servers X = n / ΣRm ……… throughput for m = 1 to M do Qm = X*Rm …… Little’s Law end
MVA Algorithm: Discussion • Can handle any service time distrib if scheduling discipline is PS • Extension to multiple classes exists • Need to measure service times and visit ratios on a per-class basis • Gives only averages, not distribs • Each queue is really only modeling a single resource
Finding Model Parameters • Visit ratios • Easy to obtain from various logs • E.g. Apache-tomcat-mysql • V_apache = 2 • V_mysql = avg # queries per servlet • V_tomcat = V_mysql + 1
Finding Model Parameters • Service times • Apache and Tomcat can be made to log time spent at and beyond them • X_apache • (T_apache–T_tomcat)/2 • X_tomat • (T_tomcat–V_mysql*X_mysql)/(V_mysql+1) • X_mysql • avg. query exec. time
What we haven’t captured … • Inter-tier load balancers • Resources held at tier i while awaiting response from tier (i+1) • Increased service times at high loads • E.g. context switches, protocol processing, contention for locks • Tails of response times • Multiple resources • Load imbalances due to session affinity
Test Applications • RUBiS (eBay like auction app) • BrowseItems, PutBid, AuthorizeBid, PutComment, RegisterUser, SellItem, SearchItem, StoreBid, … • RUBBoS (slashdot like b-board app) • AcceptStory, BrowseStories, ModerateComment, PostComment, RegisterUser, RegisterStory, ViewStory, …
Experimental Setup • Rubis (e-auctions), Rubbos (b-board) • Apache, Tomcat, Mysql • Apache mod_jk redirector • Tiers 1 and 2 are replicable • Java client • Average think time = 1 sec • One thread per session Mysql Tomcat Apache+mod_jk Client
RUBiS: Response Times • Model works well in a restricted region • Tomcat had a connection limit of 75
RUBiS: CPU Utilizations • App tier is the bottleneck
RUBBoS: Response Times • Again, works well in a restricted region
RUBiS: DB-intensive workload • Replaced SELECT with SELECT SQL_NOCACHE • Database tier is bottleneck
Query Caching at the Database • Able to capture effect of query caching at DB • Interesting to do: Caching at app tier • Reduced visit ratio at database
Multiple Classes of Sessions • Class 1 : App server intensive • Class 2 : Database intensive
Talk Outline • Motivation • Multi-tier Application Model • Preliminary Evaluation • Ongoing Work / Discussion • Summary
Multiple Servers at a Tier Mysql Apache+mod_jk Client Tomcat Mysql Apache+mod_jk Client Tomcat
rubis - 2 app servers 2500 2000 Obs at apache 1500 Obs at tomcat1 Avg resp time (msec) 1000 Obs at tomcat2 500 0 1 2 5 10 20 50 80 100 Num sessions Load Imbalance • Session affinity • Variable session requirements • Ongoing: Introduce a skew factor for adjusting the visit ratios to the servers in the replicated tier
Applying the Model to more Apps/Implementations • EJB based implementations of RUBiS and RUBBoS • TPC-W • Workloads that stress resources other than CPU • More??
Misc. Issues/Discussion • Investigate utility of the model in • Capacity planning • Dynamic provisioning • Admission control • Measurements • How many observations to gather? • Handling incr. svc times at higher loads • Context switching, locks, protocol processing, … • Response time tails
Summary • Network of queues based model • Experimental evaluation for 2 apps • Model works well in limited operating regions • Simple enhancements to handle multiple classes, multiple servers, load imbalance • More work needed on several aspects • updating service times, how many observations, resp time tails, more apps and workloads
Acknowledgements • Mike Spreitzer • Asser Tantawi • Giovanni Pacifici Thank you!