Diagnosing Performance Changes by Comparing Request Flows
8th USENIX Symposium on Networked Systems Design and Implementation (NSDI'11). March 30 - April 1, 2011. Boston, MA.
Raja R. Sambasivan*, Alice X. Zheng†, Michael De Rosa‡, Elie Krevat*, Spencer Whitman*,
Michael Stroucken*, William Wang*, Lianghong Xu*, Gregory R. Ganger*
*Carnegie Mellon University,
Dept. Electrical and Computer Engineering
Carnegie Mellon University
Pittsburgh, PA 15213
The causes of performance changes in a distributed system often elude even its developers. This paper develops a new technique for gaining insight into such changes: comparing request flows from two executions (e.g., of two system versions or time periods). Building on end-to-end request-flow tracing within and across components, algorithms are described for identifying and ranking changes in the flow and/or timing of request processing. The implementation of these algorithms in a tool called Spectroscope is evaluated. Six case studies are presented of using Spectroscope to diagnose performance changes in a distributed storage service caused by code changes, configuration modifications, and component degredations, demonstrating the value and efficacy of comparing request flows. Preliminary experiences of using Spectroscope to diagnose performance changes within select Google services are also presented.
FULL PAPER: pdf