State-machine based Adaptive Application Profiling
Near-zero Overheads using Progressive Refinements
Amol Khanapurkar and Suresh Malan
Performance Engineering Research Center, Tata Consultancy Services, Mumbai, India.
Sampling and Instrumentation based profiling are two mature techniques for application software profiling. Instrumentation-based profiling is more accurate and reliable but can significantly slow down the application. Conventionally, selective profiling approach has been adopted to avoid this slow-down. This approach works well but relies heavily on the knowledge of which portions of the application should be profiled. Many times such knowledge is not available and the fact that it relies on human expertise makes it human-dependent. In this paper we present a scientific and human-independent technique to perform selective profiling. This technique is based on the concept of State Machine where our profiler learns about performance profiles of all instrumented methods and keeps a track of usefulness of profiling them. At specified intervals, the profiler takes action based on Usefulness Index of a method. Over time, the profiler progressively refines the set of methods which are worth profiling. Using this technique we have been able to reduce profiling overheads for batch jobs as well as applications under load test to less than 1% without having to lose any performance data.
Keywords: Instrumentation-based profiling, Selective profiling, Progressive refinement, State machine.
Back to TOC