Table of Contents of the Book
Performance by Design: Computer Capacity Planning by Example, by
Daniel A. Menasce, Virgilio A. F. Almeida, and Larry W. Dowdy


Chapters
1  | 2  | 34 | 56 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15

Part I: The Practice of Performance Engineering
Chapter 1 - Computer System Lifecycle
1.1 Introduction
1.2 QoS in IT Systems
1.2.1 Response Time
1.2.2 Throughput
1.2.3 Availability
1.2.4 Reliability
1.2.5 Security
1.2.6 Scalability
1.2.7 Extensibility
1.3 System Life Cycle
1.3.1 Requirements Analysis and Specification
1.3.2 System Design
1.3.3 System Development
1.3.4 System Testing
1.3.5 System Deployment
1.3.6 System Operation
1.3.7 System Evolution
1.4 A Reference Model for IT Systems
1.5 Concluding Remarks
1.6 Exercises
Bibliography

Chapter 2 - From Systems to Descriptive Models
2.1 Introduction
2.2 Modeling
2.3 A Simple Database Server Example
2.4 The Database Server Example: Multiple Classes
2.5 The Database Server Example: Open and Closed Classes
2.6 The Database Server Example: a Mixed Model
2.7 The Database Server Example: Types of Resources
2.8 The Database Server Example: Blocking
2.9 The Database Server Example: Software Contention
2.10 Database Example: Simultaneous Resource Possession
2.11 Database Example: Class Switching
2.12 Database Example: Queuing Disciplines
2.13 QN Models
2.14 Concluding Remarks
2.15 Exercises
Bibliography

Chapter 3 - Quantifying Performance Models
3.1 Introduction
3.2 Basic Performance Results
3.2.1 Utilization Law
3.2.2 Service Demand Law
3.2.3 The Forced Flow Law
3.2.4 Little's Law
3.2.5 Interactive Response Time Law
3.3 Bounds on Performance
3.4 Using QN Models
3.5 Concluding Remarks
3.6 Exercises
Bibliography

Chapter 4 - Performance Engineering Methodology
4.1 Introduction
4.2 Performance Engineering
4.3 Motivating Example
4.4 A Model-based Methodology
4.5 Workload Model
4.5.1 Types of Workload Models
4.5.2 Clustering Analysis
4.6 Performance Models
4.7 Specifying Performance Objectives
4.7.1 Specifying a Service Level Agreement
4.7.2 Specifying Response Time
4.7.3 Specifying Cost
4.8 Concluding Remarks
4.9 Exercises
Bibliography

Chapter 5 - Case Study I: A Database Service
5.1 Introduction
5.2 Database Service Example
5.2.1 Preliminary Analysis of the Workload
5.2.2 Workload Clustering
5.3 Building a Performance Model
5.3.1 Apportioning Total Utilization to Individual Classes
5.3.2 Computing Service Demands
5.4 Using the Model
5.4.1 Adding a Third Disk
5.4.2 Using a Dual CPU System
5.4.3 Using Faster Disks
5.4.4 Moving to a 4-CPU System
5.5 Monitoring Tools
5.5.1 Hardware Monitors
5.5.2 Software Monitors
5.5.3 Hybrid Monitors
5.5.4 Event-trace Monitoring
5.5.5 Sampling Monitoring
5.6 Measurements Techniques
5.7 Obtaining Input Parameters
5.7.1 Measuring CPU Utilization
5.7.2 Overhead Representation
5.7.3 Arrival Rate
5.7.4 Concurrency Level
5.7.5 Number of Active Terminals and Think Time
5.7.6 CPU Service Demand
5.7.7 I/O Service Demands
5.8 Concluding Remarks
5.9 Exercises
Bibliography

Chapter 6 - Case Study II: A Web Server
6.1 Introduction
6.2 The Web Server
6.3 Preliminary Analysis of the Workload
6.4 Building a Performance Model
6.4.1 Computing Concurrency Levels
6.4.2 Computing Service Demands
6.5 Using the Model
6.6 Secure Downloads
6.7 Experimental Comparison of Two Servers
6.8 Concluding Remarks
6.9 Exercises
Bibliography

Chapter 7 - Case Study III: A Data Center
7.1 Introduction
7.2 The Data Center
7.3 Building a Model
7.4 Using the Model
7.5 Another Modeling Approach
7.6 A Cost Analysis
7.7 Concluding Remarks
7.8 Exercises
Bibliography

Chapter 8 - Case Study IV: An E-Business Service
8.1 Introduction
8.2 The E-Business Service
8.3 The E-Business Workload
8.4 Building a Performance Model
8.5 Using the Performance Model
8.6 Adding More Servers
8.7 Concluding Remarks
8.8 Exercises
Bibliography

Chapter 9 - Case Study V: A Help-Desk Service
9.1 Introduction
9.2 The Help Desk Service
9.2.1 Workload Characterization
9.2.2 Database Design
9.2.3 Transaction Logic
9.3 A Performance Model
9.3.1 Estimating the Number of I/Os
9.3.2 Estimating Service Demands
9.4 Techniques for SPE
9.4.1 Obtaining Data for SPE
9.5 Concluding Remarks
9.6 Exercises
Bibliography

Part II - The Theory of Performance Engineering
Chapter 10 - Markov Models
10.1 Introduction
10.2 Modeling Context
10.3 Motivating Examples
10.4 Model Construction
10.5 Model Solution
10.6 Model Interpretation
10.7 Model Assumptions and Limitations
10.8 Generalized Birth-Death Models
10.9 Beyond the Basics
10.10 Chapter Summary
10.11 Exercises
Bibliography

Chapter 11 - Single Queue Systems
11.1 Introduction
11.2 Single-Line Single-Server Systems
11.3 The M/M/1 Queue
11.4 The M/G/1 Queue
11.5 M/G/1 with Vacations
11.6 M/G/1 with Priorities
11.6.1 Non-Preemptive Priorities
11.6.2 Preemptive Resume Priorities
11.7 Approximation Results
11.8 Concluding Remarks
11.9 Exercises
Bibliography

Chapter 12 - Single Class MVA
12.1 Introduction
12.2 MVA Development
12.3 The MVA Algorithm
12.4 Balanced Systems
12.5 MVA Extensions and Limitations
12.6 Chapter Summary
12.7 Exercises
Bibliography

Chapter 13 - Queuing Models with Multiple Classes
13.1 Introduction
13.2 The Need for Multiple-Class Models
13.3 Simple Two-Class Model
13.4 Notation and Assumptions
13.5 Closed Models
13.5.1 Exact Solution Algorithm
13.5.2 Closed Models: Case Study
13.5.3 Approximate Solution Algorithms
13.6 Open Models
13.6.1 Analysis of Multiclass Open Models
13.6.2 Open Models: Case Study
13.7 Mixed Models
13.8 Concluding Remarks
13.9 Exercises
Bibliography

Chapter 14 - Queuing Models with Load Dependent Devices
14.1 Introduction
14.2 Motivating Example
14.2.1 Client-Server Performance
14.2.2 Design Questions for a CS Application
14.2.3 System and Workload Specification
14.3 Single Class Models with LD Devices
14.4 Multiclass Closed Models with LD Devices
14.5 Multiclass Open Models with LD Devices
14.6 Flow-Equivalent Server Method
14.7 Concluding Remarks
14.8 Exercises
Bibliography

Chapter - 15 Non Product-Form Queuing Models
15.1 Introduction
15.2 Modeling High Service Time Variability
15.2.1 The Decomposition Approach
15.2.2 New MVA-based Decomposition Approach
15.3 Modeling Blocking Effects
15.3.1 Single Class
15.3.2 Multiple Classes
15.4 Modeling Priority Scheduling
15.4.1 Two-Priority Example
15.4.2 SWIC Priority Algorithm
15.5 Modeling Software Contention
15.5.1 Single Class Algorithm
15.5.2 Open QN at the Software Level
15.5.3 The Multiclass Algorithm
15.6 Modeling Fork/Join Queuing Networks
15.7 Concluding Remarks
15.8 Exercises
Bibliography