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 Networks2.2.1 Genesis2.3 The World of Clients and Servers
2.2.2 Types of Networks2.2.2.1 WANs2.2.3 Protocols
2.2.2.2 LANs
2.2.2.3 The LAN to WAN Connection
2.2.2.4 The Home to WAN Connection2.2.3.1 The Internet Protocol (IP)
2.2.3.2 TCP2.3.1 The C/S Paradigm2.4 The Peer-to-Peer Model
2.3.2 Server Types
2.3.3 HTTP
2.3.3.1 The Combination of HTTP and TCP/IP
2.5 Web Service Protocols2.5.1 SOAP2.6 Concluding Remarks
2.5.2 WSDL
2.5.3 UDDI
Bibliography
Chapter 3 -
Basic Performance Concepts
3.1 Introduction
3.2 The Big Picture of Response Time
3.3 Service Times and Service Demands3.3.1 Service Times at Single Disks and Disk Arrays3.4 Web Page Download Time3.3.1.1 Single Disks3.3.2 Service Times in Networks
3.3.1.2 Disk Arrays
3.3.3 Service Times at Routers
3.5 Queues and Contention
3.6 Some Basic Performance Results3.6.1 Utilization Law3.7 Performance Metrics in Web Systems
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.8 Concluding Remarks
Bibliography
Chapter
4 - Performance Issues of Web Services
4.1 IntroductionChapter 5 - Planning the Capacity of Web Services
4.2 From Boxes to Services4.2.1 Web Server Overview4.3 Perception of Performance4.2.1.1 HTML and XML4.2.1.3 Contents
4.2.1.2 Hardware and Operating System4.3.1 Metrics4.4 Where Are the Delays?
4.3.2 Quality of Service4.4.1 Anatomy of a Web Transaction4.5 Web Infrastructure
4.4.2 Bottlenecks4.5.1 Basic Components4.6 Server Architectures
4.5.2 Proxy, Cache, and Mirror
4.5.3 Content Delivery Networks
4.5.4 The WAP Infrastructure4.6.1 Web Server 4.6.2 Application Server4.7 Networks
4.6.3 Transaction and Database Server
4.6.4 Streaming Server
4.6.5 Multi-Tier Architecture
4.6.6 Dynamic Load Balancing4.7.1 Bandwidth and Latency4.8 Concluding Remarks
4.7.2 Traffic
4.7.3 Special Features
Bibliography
5.1 Introduction
5.2 Adequate Capacity
5.3 A Capacity Planning Methodology for Web Services
5.4 Understanding the Environment
5.5 Workload Characterization5.5.1 Breaking Down the Global Workload5.6 Workload Forecasting
5.5.2 Data Collection Issues
5.5.3 Validating Workload Models
5.7 Performance/Availability Modeling and Prediction5.7.1 Performance Models5.8 Development of a Cost Model
5.7.2 Performance Prediction Techniques
5.7.3 Performance Model Validation
5.7.4 Availability Modeling
5.9 Cost/Performance Analysis
5.10 Concluding Remarks
Bibliography
Chapter
6 - Understanding and Characterizing the Workload
6.1 IntroductionChapter 7 - Benchmarks and Performance Tests
6.2 Characterizing the Workload of a Corporate Portal6.2.1 A First Approach6.3 A Workload Characterization Methodology
6.2.2 A Simple Example
6.2.3 Workload Model
6.2.4 Graph-Based Models6.3.1 Choice of an Analysis Standpoint6.4 Web Workloads
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 Workload6.3.5.1 Resource Usage6.3.6 Calculating Class Parameters
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 Mode6.3.6.1 Averaging
6.3.6.2 Clustering6.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 Algorithms6.4.1 Power-Laws6.5 Concluding Remarks
6.4.2 Bursty Workloads
6.4.3 Streaming Media Workloads
Bibliography
7.1 Introduction
7.2 The Nature of Benchmarks7.2.1 Benchmark Hierarchy7.3 Processor Benchmarks
7.2.2 Avoiding Pitfalls
7.2.3 Common Benchmarks7.3.1 Workload7.4 Web Server Benchmarks
7.3.2 Results7.4.1 SPECweb7.5 System Benchmarks7.4.1.1 Workload7.4.2 Webstone
7.4.1.2 Results7.4.2.1 Workload7.4.3 Analytically-Based Generators
7.4.2.2 Results7.5.1 TPC-C7.6 Performance Testing7.5.1.1 Workload7.5.2 TPC-W
7.5.1.2 Results7.5.2.1 Workload
7.5.2.2 Results7.6.1 Types of Performance Tests7.7 Concluding Remarks
7.6.2 A Methodology for Performance Testing7.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
Bibliography
Chapter
8 - System-Level Performance Models
8.1 IntroductionChapter 9 - Component-Level Performance Models
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 Models8.5.1 Infinite Population Models8.6 Concluding Remarks8.5.1.1 Variable Service Rate and Infinite Queue8.5.2 Finite Population Models
8.5.1.2 Variable Service Rate and Limited Queue Size8.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
Bibliography
9.1 Introduction
9.2 Queuing Networks
9.3 Open Systems9.3.1 Single-Class Open Queuing Networks9.4 Closed Models
9.3.2 Multiple-Class Open Queuing Networks9.4.1 Single-Class Closed Models9.5 Modeling Multiprocessors
9.4.1.1 Bounds for Closed QNs
9.4.2 Multiple-Class Closed Models
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 IntroductionChapter 11 - Availability of Web Services
10.2 Incorporating New Phenomena10.2.1 Burstiness Modeling10.3 Client-Side Models10.2.1.1 Defining a Burstiness Factor10.2.2 Accounting for Heavy Tails in the Model
10.2.1.2 Adjusting Service Demands to Burstiness10.3.1 No Cache Proxy Server Case10.4 Server-Side Models10.3.1.1 The Performance Model10.3.2 Using a Cache Proxy Server
10.3.1.2 Computing Service Demands10.4.1 Single Web Server10.5 Concluding Remarks10.4.1.1 The Performance Model10.4.2 Mirrored Web Servers
10.4.1.2 Computing Service Demands
Bibliography
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 Availability11.7.1 Availability Analysis11.8 Software Aging and Rejuvenation
11.7.2 Performance Analysis
11.7.3 Performability Analysis11.8.1 Load-Dependent Software Aging Rate11.9 Concluding Remarks
Bibliography
Chapter 12 - Workload
Forecasting
12.1 Introduction
12.2 Why Workloads Change?12.2.1 Traditional Workloads12.3 Forecasting Strategy
12.2.2 Web Workloads
12.4 Forecasting Process12.4.1 Workload Forecasting Models12.5 Forecasting Techniques
12.4.2 A Business-Oriented Methodology12.5.1 Regression Methods12.6 Concluding Remarks12.5.1.1 Forecast Error12.5.2 Linear Regression12.5.2.1 The Coefficient of Determination12.5.3 Nonlinear Methods
12.5.4 Moving Average
12.5.5 Exponential Smoothing
Bibliography
Chapter 13 - Measuring
Performance
13.1 Introduction
13.2 Performance Measurement Framework13.2.1 Infrastructure Measurement13.3 The Meaning of Measurements
13.2.2 Application Performance Measurement
13.4 Measurement Process
13.5 Data Collection Techniques and Tools13.5.1 Event-driven13.6 Performance Model Parameters
13.5.2 Sampling
13.5.3 Tools13.5.3.1 Hardware Monitor
13.5.3.2 Software Monitor13.5.3.2.1 Accounting Systems
13.5.3.2.2 Program Analyzers
13.5.3.2.3 Logs13.6.1 Queues13.7 Obtaining Model Parameters
13.6.2 Workload Classes
13.6.3 Workload Intensity
13.6.4 Service Demands
13.6.5 Parameter Estimation13.7.1 Network13.8 Concluding Remarks
13.7.2 Server13.7.2.1 Windows NT
13.7.2.2 UNIX
Bibliography
14.1 IntroductionAppendix A - Glossary of Terms
14.2 Characteristics of Large-Scale Systems
14.3 Model-Based Approach
14.4 Concluding Remarks
Bibliography
B.1 The Microsoft Excel WorkbooksIndex
B.2 HTTP Log Sample and Program