WebProphet: Automating Performance Prediction for Web Services
- Zhichun Li ,
- Ming Zhang ,
- Zhaosheng Zhu ,
- Yan Chen ,
- Albert Greenberg ,
- Yi-Min Wang
NSDI |
Published by USENIX
Today, large-scale web services run on complex systems,
spanning multiple data centers and content distribution
networks, with performance depending on diverse
factors in end systems, networks, and infrastructure
servers. Web service providers have many options for
improving service performance, varying greatly in feasibility,
cost and bene t, but have few tools to predict the
impact of these options.
A key challenge is to precisely capture web object dependencies,
as these are essential for predicting performance
in an accurate and scalable manner. In this paper,
we introduce WebProphet, a system that automates
performance prediction for web services. WebProphet
employs a novel technique based on timing perturbation
to extract web object dependencies, and then uses
these dependencies to predict the performance impact
of changes to the handling of the objects. We have
built, deployed, and evaluated the accuracy and ef –
ciency of WebProphet. Applying WebProphet to the
Search and Maps services of Google and Yahoo, we nd
WebProphet predicts the median and 95th percentiles of
the page load time distribution with an error rate smaller
than 16% in most cases. Using Yahoo Maps as an example,
we nd thatWebProphet reduces the problem of performance
optimization to a small number of web objects
whose optimization would reduce the page load time by
nearly 40%.