Table of Contents of the Book
Capacity Planning for Web Services: metrics, models, and methods," by
Daniel A. Menasce and Virgilio A. F. Almeida


Chapters
1  | 2  | 34 | 56 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | App. A | App. B

Preface
About the Authors
Chapter 1 - When Web Performance Is a Problem

1.1 Introduction
1.2 Web Site Performance
1.3 Client/Server Performance
1.4 The Capacity Planning Concept
1.5 Corporate Portal Performance
1.6 ISP Performance
1.7 Concluding Remarks
Bibliography


Chapter 2 - Protocols and Interaction Models for Web Services

2.1 Introduction
2.2 The World of Networks
2.2.1 Genesis
2.2.2 Types of Networks
2.2.2.1 WANs
2.2.2.2 LANs
2.2.2.3 The LAN to WAN Connection
2.2.2.4 The Home to WAN Connection
2.2.3 Protocols
2.2.3.1 The Internet Protocol (IP)
2.2.3.2 TCP
2.3 The World of Clients and Servers
2.3.1 The C/S Paradigm
2.3.2 Server Types
2.3.3 HTTP
2.3.3.1 The Combination of HTTP and TCP/IP
2.4 The Peer-to-Peer Model
2.5 Web Service Protocols
2.5.1 SOAP
2.5.2 WSDL
2.5.3 UDDI
2.6 Concluding Remarks
Bibliography


Chapter 3 - Basic Performance Concepts

3.1 Introduction
3.2 The Big Picture of Response Time
3.3 Service Times and Service Demands
3.3.1 Service Times at Single Disks and Disk Arrays
3.3.1.1 Single Disks
3.3.1.2 Disk Arrays
3.3.2 Service Times in Networks
3.3.3 Service Times at Routers
3.4 Web Page Download Time
3.5 Queues and Contention
3.6 Some Basic Performance Results
3.6.1 Utilization Law
3.6.2 Forced Flow Law
3.6.3 Service Demand Law
3.6.4 Little's Law
3.6.5 Response Time Law
3.6.6 Summary of Basic Results
3.7 Performance Metrics in Web Systems
3.8 Concluding Remarks
Bibliography


Chapter 4 - Performance Issues of Web Services

4.1 Introduction
4.2 From Boxes to Services
4.2.1 Web Server Overview
4.2.1.1 HTML and XML
4.2.1.2 Hardware and Operating System
4.2.1.3 Contents
4.3 Perception of Performance
4.3.1 Metrics
4.3.2 Quality of Service
4.4 Where Are the Delays?
4.4.1 Anatomy of a Web Transaction
4.4.2 Bottlenecks
4.5 Web Infrastructure
4.5.1 Basic Components
4.5.2 Proxy, Cache, and Mirror
4.5.3 Content Delivery Networks
4.5.4 The WAP Infrastructure
4.6 Server Architectures
4.6.1 Web Server 4.6.2 Application Server
4.6.3 Transaction and Database Server
4.6.4 Streaming Server
4.6.5 Multi-Tier Architecture
4.6.6 Dynamic Load Balancing
4.7 Networks
4.7.1 Bandwidth and Latency
4.7.2 Traffic
4.7.3 Special Features
4.8 Concluding Remarks
Bibliography
 
Chapter 5 - Planning the Capacity of Web Services
5.1 Introduction
5.2 Adequate Capacity
5.3 A Capacity Planning Methodology for Web Services
5.4 Understanding the Environment
5.5 Workload Characterization
5.5.1 Breaking Down the Global Workload
5.5.2 Data Collection Issues
5.5.3 Validating Workload Models
5.6 Workload Forecasting
5.7 Performance/Availability Modeling and Prediction
5.7.1 Performance Models
5.7.2 Performance Prediction Techniques
5.7.3 Performance Model Validation
5.7.4 Availability Modeling
5.8 Development of a Cost Model
5.9 Cost/Performance Analysis
5.10 Concluding Remarks
Bibliography


Chapter 6 - Understanding and Characterizing the Workload

6.1 Introduction
6.2 Characterizing the Workload of a Corporate Portal
6.2.1 A First Approach
6.2.2 A Simple Example
6.2.3 Workload Model
6.2.4 Graph-Based Models
6.3 A Workload Characterization Methodology
6.3.1 Choice of an Analysis Standpoint
6.3.2 Identification of the Basic Component
6.3.3 Choice of the Characterizing Parameter
6.3.4 Data Collection
6.3.5 Partitioning the Workload
6.3.5.1 Resource Usage
6.3.5.2 Applications
6.3.5.3 Objects
6.3.5.4 Geographical Orientation
6.3.5.5 Functional
6.3.5.6 Organizational Unit
6.3.5.7 Mode
6.3.6 Calculating Class Parameters
6.3.6.1 Averaging
6.3.6.2 Clustering
6.3.6.2.1 Data Analysis
6.3.6.2.2 Distance Measures
6.3.6.2.3 Scaling Techniques
6.3.6.2.4 Clustering Algorithms
6.4 Web Workloads
6.4.1 Power-Laws
6.4.2 Bursty Workloads
6.4.3 Streaming Media Workloads
6.5 Concluding Remarks
Bibliography
 
Chapter 7 - Benchmarks and Performance Tests
7.1 Introduction
7.2 The Nature of Benchmarks
7.2.1 Benchmark Hierarchy
7.2.2 Avoiding Pitfalls
7.2.3 Common Benchmarks
7.3 Processor Benchmarks
7.3.1 Workload
7.3.2 Results
7.4 Web Server Benchmarks
7.4.1 SPECweb
7.4.1.1 Workload
7.4.1.2 Results
7.4.2 Webstone
7.4.2.1 Workload
7.4.2.2 Results
7.4.3 Analytically-Based Generators
7.5 System Benchmarks
7.5.1 TPC-C
7.5.1.1 Workload
7.5.1.2 Results
7.5.2 TPC-W
7.5.2.1 Workload
7.5.2.2 Results
7.6 Performance Testing
7.6.1 Types of Performance Tests
7.6.2 A Methodology for Performance Testing
7.6.2.1 Defining the Testing Objectives
7.6.2.2 Understanding the Environment
7.6.2.3 Specifying the Test Plan
7.6.2.4 Specifying the Test Workload
7.6.2.5 Setting Up the Test Environment
7.6.2.6 Running the Tests
7.6.2.7 Analyzing the Results
7.7 Concluding Remarks
Bibliography


Chapter 8 - System-Level Performance Models

8.1 Introduction
8.2 Simple Server Model I---Infinite Queue
8.3 Simple Server Model II---Finite Queue
8.4 Generalized System-Level Models
8.5 Other System-Level Models
8.5.1 Infinite Population Models
8.5.1.1 Variable Service Rate and Infinite Queue
8.5.1.2 Variable Service Rate and Limited Queue Size
8.5.2 Finite Population Models
8.5.2.1 Fixed Service Rate and Unlimited Queue
8.5.2.2 Fixed Service Rate and Limited Queue Size
8.5.2.3 Variable Service Rate
8.6 Concluding Remarks
Bibliography
 
Chapter 9 - Component-Level Performance Models
9.1 Introduction
9.2 Queuing Networks
9.3 Open Systems
9.3.1 Single-Class Open Queuing Networks
9.3.2 Multiple-Class Open Queuing Networks
9.4 Closed Models
9.4.1 Single-Class Closed Models
9.4.1.1 Bounds for Closed QNs
9.4.2 Multiple-Class Closed Models
9.5 Modeling Multiprocessors
9.6 Combining System- and Component-Level Models
9.7 An Intranet Model
9.8 Concluding Remarks
Bibliography


Chapter 10 - Web Performance Modeling

10.1 Introduction
10.2 Incorporating New Phenomena
10.2.1 Burstiness Modeling
10.2.1.1 Defining a Burstiness Factor
10.2.1.2 Adjusting Service Demands to Burstiness
10.2.2 Accounting for Heavy Tails in the Model
10.3 Client-Side Models
10.3.1 No Cache Proxy Server Case
10.3.1.1 The Performance Model
10.3.1.2 Computing Service Demands
10.3.2 Using a Cache Proxy Server
10.4 Server-Side Models
10.4.1 Single Web Server
10.4.1.1 The Performance Model
10.4.1.2 Computing Service Demands
10.4.2 Mirrored Web Servers
10.5 Concluding Remarks
Bibliography
 
Chapter 11 - Availability of Web Services
11.1 Introduction
11.2 A Motivating Availability Example
11.3 Why and How Systems Fail
11.4 Reliability and Availability Basics
11.5 The Reliability of Systems of Components
11.6 Revisiting the Online Broker Example
11.7 Performance and Availability
11.7.1 Availability Analysis
11.7.2 Performance Analysis
11.7.3 Performability Analysis
11.8 Software Aging and Rejuvenation
11.8.1 Load-Dependent Software Aging Rate
11.9 Concluding Remarks
Bibliography


Chapter 12 - Workload Forecasting

12.1 Introduction
12.2 Why Workloads Change?
12.2.1 Traditional Workloads
12.2.2 Web Workloads
12.3 Forecasting Strategy
12.4 Forecasting Process
12.4.1 Workload Forecasting Models
12.4.2 A Business-Oriented Methodology
12.5 Forecasting Techniques
12.5.1 Regression Methods
12.5.1.1 Forecast Error
12.5.2 Linear Regression
12.5.2.1 The Coefficient of Determination
12.5.3 Nonlinear Methods
12.5.4 Moving Average
12.5.5 Exponential Smoothing
12.6 Concluding Remarks
Bibliography


Chapter 13 - Measuring Performance

13.1 Introduction
13.2 Performance Measurement Framework
13.2.1 Infrastructure Measurement
13.2.2 Application Performance Measurement
13.3 The Meaning of Measurements
13.4 Measurement Process
13.5 Data Collection Techniques and Tools
13.5.1 Event-driven
13.5.2 Sampling
13.5.3 Tools
13.5.3.1 Hardware Monitor
13.5.3.2 Software Monitor
13.5.3.2.1 Accounting Systems
13.5.3.2.2 Program Analyzers
13.5.3.2.3 Logs
13.6 Performance Model Parameters
13.6.1 Queues
13.6.2 Workload Classes
13.6.3 Workload Intensity
13.6.4 Service Demands
13.6.5 Parameter Estimation
13.7 Obtaining Model Parameters
13.7.1 Network
13.7.2 Server
13.7.2.1 Windows NT
13.7.2.2 UNIX
13.8 Concluding Remarks
Bibliography


Chapter 14 - Wrapping Up

14.1 Introduction
14.2 Characteristics of Large-Scale Systems
14.3 Model-Based Approach
14.4 Concluding Remarks
Bibliography
 
Appendix A - Glossary of Terms

Appendix B - Downloads

B.1 The Microsoft Excel Workbooks
B.2 HTTP Log Sample and Program
Index