Performance by Design: Computer Capacity Planning by Example

Front Cover
Computing systems must meet increasingly strict Quality of Service (QoS) requirements for performance, availability, security, and maintainability. To achieve these goals, designers, analysts, and capacity planners need a far more thorough understanding of QoS issues, and the implications of their decisions. Now, three leading experts present a complete, application-driven framework for understanding and estimating performance. You'll learn exactly how to map real-life systems to accurate performance models, and use those models to make better decisions--both up front and throughout the entire system lifecycle. supported by extensive numerical examples and exercises; QoS issues in requirements analysis, specification, design, development, testing, deployment, operation, and system evolution; specific scenarios, including e-Business and database services, servers, clusters, and data centers; techniques for identifying potential congestion at both software and hardware levels; performance engineering concepts and tools; detailed solution techniques including exact and approximate MVA and Markov Chains; modeling of software contention, fork-and-join, service rate variability, and priority.
 

What people are saying - Write a review

User Review - Flag as inappropriate

An excellent introduction to the subject matter. The book could be used as a self-learning guide, as well as a text book for undergraduate/graduate courses. Menasce and his team not only explain the different components of performance engineering and capacity planning but also show the connection among the different pieces of the performance puzzle. The book also comes with a very handy set of excel files for solving performance engineering problems demonstrated in the book. The exercises are also very rich and educative. Solutions of the exercises are also available on the net (not by the authors but someone else compiled a collection of the solutions, google it!).  

Contents

Computer System Lifecycle
11
12 QoS in IT Systems
12
121 Response Time
13
123 Availability
16
124 Reliability
18
126 Scalability
19
131 Requirements Analysis and Specification
20
132 System Design
22
78 Exercises
202
Case Study IV An EBusiness Service
205
83 The EBusiness Workload
206
84 Building a Performance Model
209
85 Using the Performance Model
212
86 Adding More Servers
214
87 Concluding Remarks
217
88 Exercises
218

133 System Development
23
135 System Deployment
24
137 System Evolution
26
14 A Reference Model for IT Systems
27
15 Concluding Remarks
28
16 Exercises
30
Bibliography
31
From Systems to Descriptive Models
35
22 Modeling
36
23 A Simple Database Server Example
38
Multiple Classes
40
Open and Closed Classes
42
a Mixed Model
43
Types of Resources
45
Blocking
46
Software Contention
48
Simultaneous Resource Possession
49
Class Switching
51
Queuing Disciplines
52
213 QN Models
53
214 Concluding Remarks
57
Bibliography
59
Quantifying Performance Models
61
321 Utilization Law
64
322 Service Demand Law
65
323 The Forced Flow Law
68
324 Littles Law
69
325 Interactive Response Time Law
72
33 Bounds on Performance
74
34 Using QN Models
80
35 Concluding Remarks
83
36 Exercises
84
Bibliography
87
Performance Engineering Methodology
89
42 Performance Engineering
90
43 Motivating Example
92
44 A Modelbased Methodology
99
45 Workload Model
103
452 Clustering Analysis
106
46 Performance Models
108
47 Specifying Performance Objectives
110
471 Specifying a Service Level Agreement
111
472 Specifying Response Time
112
473 Specifying Cost
113
48 Concluding Remarks
116
49 Exercises
117
Case Study I A Database Service
121
521 Preliminary Analysis of the Workload
122
522 Workload Clustering
124
53 Building a Performance Model
126
531 Apportioning Total Utilization to Individual Classes
127
532 Computing Service Demands
129
54 Using the Model
130
541 Adding a Third Disk
131
542 Using a Dual CPU System
133
543 Using Faster Disks
134
544 Moving to a 4CPU System
135
551 Hardware Monitors
136
552 Software Monitors
137
553 Hybrid Monitors
139
555 Sampling Monitoring
140
56 Measurements Techniques
141
57 Obtaining Input Parameters
142
571 Measuring CPU Utilization
143
572 Overhead Representation
150
573 Arrival Rate
151
574 Concurrency Level
152
575 Number of Active Terminals and Think Time
153
576 CPU Service Demand
154
577 IO Service Demands
156
58 Concluding Remarks
158
59 Exercises
159
Bibliography
162
Case Study II A Web Server
165
63 Preliminary Analysis of the Workload
166
64 Building a Performance Model
169
641 Computing Concurrency Levels
170
65 Using the Model
173
66 Secure Downloads
177
67 Experimental Comparison of Two Servers
179
68 Concluding Remarks
183
Bibliography
185
Case Study III A Data Center
187
72 The Data Center
188
73 Building a Model
190
74 Using the Model
192
75 Another Modeling Approach
198
76 A Cost Analysis
200
77 Concluding Remarks
201
Bibliography
219
Case Study V A HelpDesk Service
221
92 The Help Desk Service
224
921 Workload Characterization
225
922 Database Design
227
923 Transaction Logic
229
93 A Performance Model
233
932 Estimating Service Demands
239
94 Techniques for SPE
241
941 Obtaining Data for SPE
243
95 Concluding Remarks
244
96 Exercises
245
Bibliography
248
The Theory of Performance Engineering
251
Markov Models
253
102 Modeling Context
255
103 Motivating Examples
258
104 Model Construction
262
105 Model Solution
267
106 Model Interpretation
272
107 Model Assumptions and Limitations
276
108 Generalized BirthDeath Models
279
109 Beyond the Basics
280
1010 Chapter Summary
283
1011 Exercises
284
Bibliography
288
Single Queue Systems
291
112 Single Queue Single Server Systems
292
113 The MM1 Queue
294
114 The MG1 Queue
296
115 MG1 with Vacations
298
116 MG1 with Priorities
301
1161 NonPreemptive Priorities
303
1162 Preemptive Resume Priorities
304
117 Approximation Results
305
118 Concluding Remarks
308
Bibliography
310
Single Class MVA
311
122 MVA Development
312
123 The MVA Algorithm
323
124 Balanced Systems
327
125 MVA Extensions and Limitations
331
126 Chapter Summary
332
Bibliography
335
Queuing Models with Multiple Classes
337
132 The Need for MultipleClass Models
338
133 Simple TwoClass Model
341
134 Notation and Assumptions
345
135 Closed Models
349
1351 Exact Solution Algorithm
352
Case Study
353
1353 Approximate Solution Algorithms
357
136 Open Models
360
1361 Analysis of Multiclass Open Models
363
Case Study
365
137 Mixed Models
370
138 Concluding Remarks
374
Bibliography
377
Queuing Models with Load Dependent Devices
379
142 Motivating Example
380
1421 ClientServer Performance
381
1422 Design Questions for a CS Application
383
1423 System and Workload Specification
385
143 Single Class Models with LD Devices
386
144 Multiclass Closed Models with LD Devices
392
145 Multiclass Open Models with LD Devices
397
146 FlowEquivalent Server Method
403
147 Concluding Remarks
406
148 Exercises
407
Bibliography
408
NonProduct Form Queuing Models
411
152 Modeling High Service Time Variability
412
1521 The Decomposition Approach
413
1522 New MVAbased Decomposition Approach
416
153 Modeling Blocking Effects
417
1531 Single Class
419
1532 Multiple Classes
422
154 Modeling Priority Scheduling
426
1541 TwoPriority Example
427
1542 SWIC Priority Algorithm
430
155 Modeling Software Contention
432
1551 Single Class Algorithm
434
1552 Open QN at the Software Level
440
1553 The Multiclass Algorithm
442
156 Modeling ForkJoin Queuing Networks
444
157 Concluding Remarks
448
Bibliography
449
SUBJECT INDEX
455
Copyright

Common terms and phrases

Popular passages

Page 470 - Eq. (13) is the total time (waiting + service) spent at the CPU by a process while executing non-critical section code and the second term is the total time spent at the CPU by a process while executing the critical section code. So, for example, using Eqs.

About the author (2004)

Lawrence W. Dowdy is Professor and former Chair of Computer Science at Vanderbilt University.

Bibliographic information