Title :
An empirical study of tracing techniques from a failure analysis perspective
Author :
Kanduri, Satya ; Elbaum, Sebastian
Author_Institution :
Dept. of Comput. Sci. & Eng., Nebraska Univ., Lincoln, NE, USA
Abstract :
Tracing is a dynamic analysis technique to continuously capture events of interest on a running program. The occurrence of a statement, the invocation of a function, and the trigger of a signal are examples of traced events. Software engineers employ traces to accomplish various tasks, ranging from performance monitoring to failure analysis. Despite its capabilities, tracing can negatively impact the performance and general behavior of an application. In order to minimize that impact, traces are normally buffered and transferred to (slower) permanent storage at specific intervals. This scenario presents a delicate balance. Increased buffering can minimize the impact on the target program, but it increases the risk of losing valuable collected data in the event of a failure. Frequent disk transfers can ensure traced data integrity, but it risks a high impact on the target program. We conducted an experiment involving six tracing schemes and various buffer sizes to address these trade-offs. Our results highlight opportunities for tailored tracing schemes that would benefit failure analysis.
Keywords :
data integrity; program testing; software performance evaluation; software reliability; storage management; buffer sizes; data integrity; dynamic analysis technique; experiment; frequent disk transfers; performance monitoring; permanent storage; program testing; system failure analysis; tracing techniques; Acceleration; Buffer storage; Computer science; Condition monitoring; Electronic switching systems; Failure analysis; Instruments; Performance analysis; Software debugging; Software performance;
Conference_Titel :
Software Reliability Engineering, 2002. ISSRE 2003. Proceedings. 13th International Symposium on
Print_ISBN :
0-7695-1763-3
DOI :
10.1109/ISSRE.2002.1173270