29.11.2012 Views

2nd USENIX Conference on Web Application Development ...

2nd USENIX Conference on Web Application Development ...

2nd USENIX Conference on Web Application Development ...

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

BenchLab: An Open Testbed for Realistic Benchmarking<br />

of <strong>Web</strong> Applicati<strong>on</strong>s<br />

Emmanuel Cecchet, Veena Udayabhanu, Timothy Wood, Prashant Shenoy<br />

University of Massachusetts Amherst<br />

{cecchet,veena,twood,shenoy}@cs.umass.edu<br />

Abstract<br />

<strong>Web</strong> applicati<strong>on</strong>s have evolved from serving static c<strong>on</strong>tent to dynamically generating <strong>Web</strong> pages. <strong>Web</strong> 2.0 applicati<strong>on</strong>s<br />

include JavaScript and AJAX technologies that manage increasingly complex interacti<strong>on</strong>s between the client<br />

and the <strong>Web</strong> server. Traditi<strong>on</strong>al benchmarks rely <strong>on</strong> browser emulators that mimic the basic network functi<strong>on</strong>ality of<br />

real <strong>Web</strong> browsers but cannot emulate the more complex interacti<strong>on</strong>s. Moreover, experiments are typically c<strong>on</strong>ducted<br />

<strong>on</strong> LANs, which fail to capture real latencies perceived by users geographically distributed <strong>on</strong> the Internet. To<br />

address these issues, we propose BenchLab, an open testbed that uses real <strong>Web</strong> browsers to measure the performance<br />

of <strong>Web</strong> applicati<strong>on</strong>s. We show why using real browsers is important for benchmarking modern <strong>Web</strong> applicati<strong>on</strong>s<br />

such as Wikibooks and dem<strong>on</strong>strate geographically distributed load injecti<strong>on</strong> for modern <strong>Web</strong> applicati<strong>on</strong>s.<br />

1. Introducti<strong>on</strong><br />

Over the past two decades, <strong>Web</strong> applicati<strong>on</strong>s have<br />

evolved from serving primarily static c<strong>on</strong>tent to complex<br />

<strong>Web</strong> 2.0 systems that support rich JavaScript and<br />

AJAX interacti<strong>on</strong>s <strong>on</strong> the client side and employ sophisticated<br />

architectures involving multiple tiers, geographic<br />

replicati<strong>on</strong> and geo-caching <strong>on</strong> the server end.<br />

From the server backend perspective, a number of <strong>Web</strong><br />

applicati<strong>on</strong> frameworks have emerged in recent years,<br />

such as Ruby <strong>on</strong> Rails, Pyth<strong>on</strong> Django and PHP Cake,<br />

that seek to simplify applicati<strong>on</strong> development. From a<br />

client perspective, <strong>Web</strong> applicati<strong>on</strong>s now support rich<br />

client interactivity as well as customizati<strong>on</strong>s based <strong>on</strong><br />

browser and device (e.g., laptop versus tablet versus<br />

smartph<strong>on</strong>e). The emergence of cloud computing has<br />

<strong>on</strong>ly hastened these trends---today’s cloud platforms<br />

(e.g., Platform-as-a-Service clouds such as Google AppEngine)<br />

support easy prototyping and deployment,<br />

al<strong>on</strong>g with advanced features such as autoscaling.<br />

To fully exploit these trends, <strong>Web</strong> researchers and developers<br />

need access to modern tools and benchmarks<br />

to design, experiment, and enhance modern <strong>Web</strong> systems<br />

and applicati<strong>on</strong>s. Over the years, a number of<br />

<strong>Web</strong> applicati<strong>on</strong> benchmarks have been proposed for<br />

use by the community. For instance, the research community<br />

has relied <strong>on</strong> open-source benchmarks such as<br />

TPC-W [16] and RUBiS [13] for a number of years;<br />

however these benchmarks are outdated and do not<br />

fully capture the complexities of today’s <strong>Web</strong> 2.0 applicati<strong>on</strong>s<br />

and their workloads. To address this limitati<strong>on</strong>,<br />

a number of new benchmarks have been proposed,<br />

such as TPC-E, SPEC<strong>Web</strong>2009 or SPECjEnterprise2010.<br />

However, the lack of open-source or freely<br />

available implementati<strong>on</strong>s of these benchmarks has<br />

meant that their use has been limited to commercial<br />

vendors. CloudSt<strong>on</strong>e [15] is a recently proposed opensource<br />

cloud/<strong>Web</strong> benchmark that addresses some of<br />

the above issues; it employs a modern <strong>Web</strong> 2.0 applicati<strong>on</strong><br />

architecture with load injectors relying <strong>on</strong> a Markov<br />

model to model user workloads. Cloudst<strong>on</strong>e, however,<br />

does not capture or emulate client-side JavaScript<br />

or AJAX interacti<strong>on</strong>s, an important aspect of today’s<br />

<strong>Web</strong> 2.0 applicati<strong>on</strong>s and an aspect that has implicati<strong>on</strong>s<br />

<strong>on</strong> the server-side load.<br />

In this paper, we present BenchLab, an open testbed for<br />

realistic <strong>Web</strong> benchmarking that addresses the above<br />

drawbacks. BenchLab’s server comp<strong>on</strong>ent employs<br />

modern <strong>Web</strong> 2.0 applicati<strong>on</strong>s that represent different<br />

domains; currently supported server backends include<br />

Wikibooks (a comp<strong>on</strong>ent of Wikipedia) and Cloud-<br />

St<strong>on</strong>e’s Olio social calendaring applicati<strong>on</strong>, with support<br />

for additi<strong>on</strong>al server applicati<strong>on</strong>s planned in the<br />

near future. BenchLab exploits modern virtualizati<strong>on</strong><br />

technology to package its server backends as virtual<br />

appliances, thereby simplifying the deployment and<br />

c<strong>on</strong>figurati<strong>on</strong> of these server applicati<strong>on</strong>s in laboratory<br />

clusters and <strong>on</strong> public cloud servers. BenchLab supports<br />

<strong>Web</strong> performance benchmarking “at scale” by<br />

leveraging modern public clouds---by using a number<br />

of cloud-based client instances, possibly in different<br />

geographic regi<strong>on</strong>s, to perform scalable load injecti<strong>on</strong>.<br />

Cloud-based load injecti<strong>on</strong> is cost-effective, since it<br />

does not require a large hardware infrastructure and<br />

also captures Internet round-trip times. In the design of<br />

BenchLab, we make the following c<strong>on</strong>tributi<strong>on</strong>s:<br />

� We provide empirical results <strong>on</strong> the need to capture<br />

the behavior of real <strong>Web</strong> browsers during <strong>Web</strong> load<br />

injecti<strong>on</strong>. Our results show that traditi<strong>on</strong>al trace replay<br />

methods are no l<strong>on</strong>ger able to faithfully emulate<br />

modern workloads and exercise client and serv-<br />

<str<strong>on</strong>g>USENIX</str<strong>on</strong>g> Associati<strong>on</strong> <strong>Web</strong>Apps ’11: <str<strong>on</strong>g>2nd</str<strong>on</strong>g> <str<strong>on</strong>g>USENIX</str<strong>on</strong>g> <str<strong>on</strong>g>C<strong>on</strong>ference</str<strong>on</strong>g> <strong>on</strong> <strong>Web</strong> Applicati<strong>on</strong> <strong>Development</strong> 37

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!