Monitoring the processing of interactive requests on distributed systems
Paul Ashton and John Penny
Department of Computer Science
University of Canterbury
Abstract
Distributed systems, and systems with microkernel architectures, are becoming widely used. A consequence is that the processing required to perform a user request is often spread over many computers, many programs and many processes. To gain an understanding of the processing involved in carrying out a user request, and therefore of what contributes to user response times, it is important to capture information on the contributions of all processes that perform work as a result of the request. Existing monitors (for sequential, parallel and distributed systems) are not well suited to this task, as they provide information on either overall system activity, or on the entire execution of a single program.
Here, we define an interaction as a user input and all processing that results from that user input. We define an interaction network to be a directed graph representation of all events and activities that occur during an interaction, regardless of the computer, process, or program in which they occur. We present a number of interaction networks constructed from event records obtained by instrumenting the kernel of SunOS. These examples illustrate the value of the interaction network as a tool for understanding and evaluating what happens during an interaction. The examples also help to highlight the substantial differences between the information available from monitoring of interactions and the information available from monitoring of individual programs. The interaction network is based on very general models of an `interaction' and a `loosely-coupled distributed system', and should be widely applicable.