This book is intended primarily for
practitioners engaged in the analysis
and design of computing systems.
Analysts and designers are extremely
interested in the performance character-
istics of computing systems, especially
response times, throughputs, queue
lengths, and utilizations. Although steady-
state characteristics can be well under-
stood using queueing theory (e.g., as is
done with capacity planning), prac-
titioners lack the conceptual tools to
address the dynamics of resource man-
, especially changes in workloads and configuration. The focus of this
book is to distill and make accessible the essentials of control theory needed by
computing practitioners to address these dynamics.

The dynamics of computing systems are important considerations in ensuring
the profitability and availability of many businesses. For example, e-commerce
sites frequently contend with workloads that change so rapidly that service
degradations and failures result. Experienced designers know that leaving the
management of dynamics to operators is not acceptable because many changes
occur too rapidly for humans to be able to respond in a timely manner. As a result,
ad hoc automation is frequently deployed with surprising results, such as wild
oscillations or very slow responses to changes in workloads. Our belief is that by
understanding the essential elements of control theory, computing practitioners
can design systems that adapt in a more reliable manner.

A second audience for this book comprises researchers in the fields of computer
science and controls. Today, very few computer science researchers have
familiarity with control theory. As a result, many resource management schemes
fail to address concepts that are well understood in control, such as the effect of
measurement and system delays on stability and other aspects of control performance.
Similarly, researchers in control fields rarely appreciate the issues particular
to computing systems, such as considerations for policy-based management,
service-level agreements, and the implications of modifying computing systems
to provide sensors and actuators that are appropriate for control purposes. To
address this second audience, we show through numerous examples how control
theoretic techniques can be applied to computer systems, and describe the many
challenges that remain.

Much effort has been devoted to making this book accessible to computer
scientists. First, the examples focus on computer systems and their components,
such as Web servers, caching, and load balancing. Second, our approach to modeling
draws heavily on insights from queueing systems and their dynamics (as
opposed to Newton’s laws). Third, we focus almost entirely on discrete-time
systems rather than continuous-time systems (as is traditional in controls books).
There are two reasons for this: (1) performance measurements of computer systems
are solicited on a sampled basis, which is best described by a discrete-time
model; and (2) computer scientists are quite comfortable thinking in terms of
difference equations, and much less comfortable thinking in terms of differential


The book assumes background in series and their convergence, all of which
is common in an undergraduate engineering and mathematics curriculum. Some
prior exposure to Z-transforms (or Laplace transforms) is also of benefit, although
not required. Also helpful is experience with developing statistical models, especially
using linear regression.

Having appropriate software tools is immensely helpful in developing statistical
models as well as for control analysis and design. Throughout the book,
we use MATLAB®, a very powerful analysis environment that is arguably the
standard for control engineers1. In Appendix E we provide an introduction to
MATLAB (including the Control System Toolbox). However, access to MATLAB is
not required for the vast majority of the book, only the optional section (indicated
by *) at the end of each chapter.

Outline of the Book

The book is divided into three parts. Part I, Background, consists of one chapter
introducing the control problem and giving an overview of the area. Part II,
Modeling, contains six chapters and covers modeling of dynamic systems in
discrete time using difference equations, Z-transforms, block diagrams, transfer
functions, and transient analysis. The focus is on single-input, single-output
first- and second-order systems, although Chapter 7 is devoted to multiple-input,
multiple-output (MIMO) systems. Part III, Control, has four chapters. In the
first chapter we describe proportional control and pole placement design. In the
next chapter we consider integral and differential control as well, including PID
(proportional–integral–differential) control tuning techniques. In the third chapter
we address state-space feedback control, including the application of pole placement
to MIMO systems and design using linear quadratic regulators. In the last
chapter we discuss a variety of advanced topics, such as adaptive control, gain
scheduling, minimum-variance control, and fuzzy control. In all three parts,
examples are used extensively to illustrate the problems addressed, the techniques
employed, and the value provided by the techniques.

Several appendixes are provided to make the book more useful as a reference
and more self-contained. Appendix A summarizes the mathematical notation
used, Appendix B lists key acronyms, and Appendix C contains key results
developed in the book. Anothertwo appendixes contain supplemental material.
Appendix D describes results from linear algebra that are used in Chapters 7 and
10. In Appendix E we provide an overview of the facilities in MATLAB for doing
control analysis and design along with a brief MATLAB tutorial.

Considerable thought was given to the choice of examples.We sought examples
that both aid in communicating key concepts and provide a basis for modeling
systems encountered in practice (especially based on our experience at IBM and
that of colleagues elsewhere in industry and academia). Our most basic example is
a single-server queueing system with exponential interarrival and service times and
a finite-size buffer (M / M / 1 / K), which provides a means to study the dynamics
of admission control and proportional scheduling. The e-mail example based on
the IBM Lotus® DominoTM Server2 provides insight into challenges faced in
system identification. The Apache HTTP Server3 example serves as a vehicle for
studying MIMO control. Additional examples include caching with differentiated
service and load balancing.

1MATLAB is a registered trademark of The MathWorks, Inc.
2IBM Lotus Domino is a registered trademark of IBM Corporation.
3Apache is a trademark of The Apache Software Foundation and is used with permission.

Table of Contents
The following content is available for browsing from this book: