SLEEPY: Sampling User-Level Execution via EIPs Profiled Continuously

Michelle Moravan and Margaret Richey

Abstract: Understanding where the system is spending its time is necessary for debugging and optimizing applications. As such, we present an analysis tool with the intent to continuously take measurements on every timer interrupt during a sampling period. The end result is a collection of data samples that have been aggregated to display what instruction pointers are seen most often. These aggregates can be viewed on an instruction level, an instance of an application, a subset of the running applications, or on the system as a whole. Based on the benchmarks, the majority of the results are verifiable and the sampling itself is extremely efficient with minimal overhead (0.01 - 0.9 percent). The overhead of the system utilizing the worst case backup scheme is three to six percent.

Links:
Paper PDF
Software
Data