Using Performance Reflection in Systems Software
Robert Fowler, Alan Cox, Sameh Elnikety, and Willy Zwaenepoel
Department of Computer Science, Rice University, Houston, Texas, USA.
School of Computer and Communication Sciences, EPFL, Lausanne, Switzerland
We argue that systems software can exploit hardware instrumentation mechanisms,
such as performance monitoring counters in modern processors,
along with general system statistics to
reactively modify its behavior
to achieve better performance.
In this paper we outline our approach of using these instrumentation mechanisms to estimate
productivity and overhead metrics while running user applications. At the kernel level, we speculate that the scheduler can exploit these metrics
to improve system performance.
At the application level, we show that applications can use these metrics
as well as application-specific
productivity metrics to reactively tune their performance.
We give several examples of using reflection at
the kernel level (e.g., scheduling to improve memory hierarchy performance)
and at the application level
(e.g., server throttling).
Sameh Mohamed Elnikety