Design and Implementation of A Feedback Controller for Slowdown Differentiation on Internet Servers ∗ Jianbin Wei and Cheng-Zhong Xu Department of Electrical and Computer Engineering Wayne State University, Detroit, MI 48202 {jbwei, czxu}@wayne.edu ABSTRACT Proportional slowdown differentiation (PSD) aims to main- tain slowdown ratios between different classes of clients ac- cording to their pre-specified differentiation parameters. In this paper, we design a feedback controller to allocate pro- cessing rate on Internet servers for PSD. In this approach, the processing rate of a class is adjusted by an integral feed- back controller according to the difference between the tar- get slowdown ratio and the achieved one. The initial rate class is estimated based on predicted workload using queue- ing theory. We implement the feedback controller in an Apache Web server. The experimental results under vari- ous environments demonstrate the controller’s effectiveness and robustness. Categories and Subject Descriptors: C.4 [Computer Systems Organization]: Performance of Systems General Terms: Performance. Keywords: Feedback control, Quality of service, Slowdown 1. DESIGN OF A FEEDBACK CONTROLLER The past decade has seen a demand for provisioning of dif- ferent levels of quality of service (QoS) on Internet servers. Performance metric slowdown, defined as a request’s queue- ing delay to its service time, reflects the requirement that a request’s queueing delay is kept proportional to its service time. Slowdown or its variant has been taken into account in recently designed QoS-aware systems [2, 3]. These systems mainly focus on how to minimize the average slowdown. Let Si (k) denote the average slowdown of class i computed at sampling period k, and δi its differentiation parameter. For any two classes i and j , PSD requires Si (k) Sj (k) = δi δj , 1 ≤ i, j ≤ N. (1) In this paper, we design and implement a feedback con- troller for PSD. Its basic structure is shown in Figure 1. The feedback controller is to adjust the rate allocation accord- ing to the difference between the target slowdown ratio and the achieved one using integral control. Thus, it is able to eliminate the steady-state error and to avoid over-reactions to measurement noises. We define the error associated with ∗ This research was supported in part by U.S. NSF grant ACI-0203592. Copyright is held by the author/owner. WWW 2005, May 10–14, 2005, Chiba, Japan. ACM 1-59593-051-5/05/0005. ∆u(k) u(k) y(k) e(k) r(k) ∑ + - ˜ u(k) Requests Server Feedback controller Rate predictor Figure 1: The structure of the feedback controller. class i as ei (k)= ri (k) - yi (k)= δi (k) δ1(k) - Si (k) S1(k) . (2) The processing rate of class i of sampling period k + 1 then is ci (k + 1) = 1 c 1 c i + g ei (k)dk · N i=1 1/ c 1 c i + g ei (k)dk , (3) where g is the control factor. The initial processing rate of a class can be calculated by the rate predictor using queueing theory. Let ci denote class i’s allocated processing rate, λi its arrival rate, and E[X] its mean service time. In [5], we presented a rate-allocation strategy in which the initial rate of class i is ci = λi E[X]+ λi /δi N i=1 λi /δi (1 - N i=1 λi E[X]). (4) The first part of the initial processing rate is a baseline that prevents the class from being overloaded so as to make the provisioning of PSD feasible. The second part is a portion of surplus processing rate determined by the differentiation parameter of the class and the load conditions (i.e., its nor- malized arrival rate) controls the quality differences between classes. 2. IMPLEMENTATION AND RESULTS We implemented the feedback controller on Apache web server 1.3.31 running on Linux 2.6. Apache web server is normally executed with multiple processes (or threads). At the start-up, a parent server process sets up listening sockets and creates a pool of child processes. The child processes then listen on and accept client requests from these sockets. Since every child process in Apache web server is identical, in the implementation, we realize the processing-rate allo- cation by controlling the number of child processes that a 1006