Recognizing End-User Transactions in Performance Management
Abstract
Providing good quality of service (e.g., low response times) in distributed computer systems requires measuring end-user perceptions of performance. Unfortunately, such measures are often expensive or impossible to obtain. Herein, we propose a machine-learning approach to recognizing end-user transactions consisting of sequences of remote procedure calls (RPCs) received at a server. Two problems are addressed. The first problem is labeling an RPC sequence that corresponds to one transaction instance with the correct transaction type. This is akin to text classification. The second problem is transaction recognition, a more comprehensive task that involves segmenting RPC sequences into transaction instances and labeling those instances with transaction types. This problem is similar to segmenting sounds into words as in speech understanding. Using Naive Bayes approach, we tackle the labeling problem with four combinations of feature vectors and probability distributions: RPC occurrences with the Bernoulli distribution and RPC counts with the multinomial, geometric, and shifted geometric distributions. Our approach to transaction recognition uses a dynamic-programming Viterbi algorithm that searches for a most likely segmentation of an RPC sequence into a sequence of transactions, assuming transaction independence and using our classifiers to select a most likely transaction label for a given RPC sequence. For both problems, good accuracies are obtained, although the labeling problem achieves higher accuracies (up to 87%) than does transaction recognition (64%).