Automating Vertical Profiling
San Diego Room
Wednesday, 15:30, 30 minutes
Matthias Hauswirth, University of Colorado
Amer Diwan, University of Colorado
Peter Sweeney, IBM Thomas J. Watson Research Center
Michael Mozer, University of Colorado
Last year at OOPSLA we presented a methodology, "vertical profiling", for understanding the performance of object-oriented programs. The key insight behind this methodology is that modern programs run on top of many layers (virtual machine, middleware, etc) and thus we need to collect and combine information from all layers in order to understand system performance. Although our methodology was able to explain previously unexplained performance phenomena, it was extremely labor intensive. In this paper we describe and evaluate techniques for automating two significant activities of vertical profiling: trace alignment and correlation.
Trace alignment aligns traces obtained from separate runs so that one can reason across the traces. We are not aware of any prior approach that effectively and automatically aligns traces.
Correlation sifts through hundreds of metrics to find ones that have a bearing on a performance anomaly of interest. In prior work we found that statistical correlation was only sometimes effective.
We have identified highly-effective automated approaches for both activities. For aligning traces we explore dynamic time warping, and for correlation we explore eight correlators: Pearson's coefficient, Spearman's coefficient, Manhattan distance, Euclidean distance, dynamic time warping, manual linear pattern, best splits, and same splits. Although we explore these activities in the context of vertical profiling, both activities are widely applicable in the performance analysis area.