Performance by Design: Computer Capacity Planning by Example

Book description

Practical systems modeling: planning performance, availability, security, and more

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. Coverage includes:

  • State-of-the-art quantitative analysis techniques, 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

  • About the Web Site

    The accompanying Web site provides companion Excel workbooks that implement many of the book's algorithms and numerical examples.

    Table of contents

    1. Copyright
      1. Dedication
    2. Preface
      1. Goal, Theme, and Approach
        1. Who Should Read This Book
        2. Book Organization
        3. Acknowledgments
        4. From the Same Authors
        5. Book’s Web Site and Authors’ Addresses
    3. I. The Practice of Performance Engineering
      1. 1. Computer System Lifecycle
        1. 1.1. Introduction
        2. 1.2. QoS in IT Systems
          1. 1.2.1. Response Time
          2. 1.2.2. Throughput
          3. 1.2.3. Availability
          4. 1.2.4. Reliability
          5. 1.2.5. Security
          6. 1.2.6. Scalability
          7. 1.2.7. Extensibility
        3. 1.3. System Life Cycle
          1. 1.3.1. Requirements Analysis and Specification
          2. 1.3.2. System Design
          3. 1.3.3. System Development
          4. 1.3.4. System Testing
          5. 1.3.5. System Deployment
          6. 1.3.6. System Operation
          7. 1.3.7. System Evolution
        4. 1.4. A Reference Model for IT Systems
        5. 1.5. Concluding Remarks
        6. 1.6. Exercises
        7. Bibliography
          1. Bibliography
      2. 2. From Systems to Descriptive Models
        1. 2.1. Introduction
        2. 2.2. Modeling
        3. 2.3. A Simple Database Server Example
        4. 2.4. The Database Server Example: Multiple Classes
        5. 2.5. The Database Server Example: Open and Closed Classes
        6. 2.6. The Database Server Example: a Mixed Model
        7. 2.7. The Database Server Example: Types of Resources
        8. 2.8. The Database Server Example: Blocking
        9. 2.9. The Database Server Example: Software Contention
        10. 2.10. Database Example: Simultaneous Resource Possession
        11. 2.11. Database Example: Class Switching
        12. 2.12. Database Example: Queuing Disciplines
        13. 2.13. QN Models
        14. 2.14. Concluding Remarks
        15. 2.15. Exercises
        16. Bibliography
          1. Bibliography
      3. 3. Quantifying Performance Models
        1. 3.1. Introduction
        2. 3.2. Basic Performance Results
          1. 3.2.1. Utilization Law
          2. 3.2.2. Service Demand Law
          3. 3.2.3. The Forced Flow Law
          4. 3.2.4. Little’s Law
          5. 3.2.5. Interactive Response Time Law
        3. 3.3. Bounds on Performance
        4. 3.4. Using QN Models
        5. 3.5. Concluding Remarks
        6. 3.6. Exercises
        7. Bibliography
          1. Bibliography
      4. 4. Performance Engineering Methodology
        1. 4.1. Introduction
        2. 4.2. Performance Engineering
        3. 4.3. Motivating Example
        4. 4.4. A Model-based Methodology
        5. 4.5. Workload Model
          1. 4.5.1. Types of Workload Models
          2. 4.5.2. Clustering Analysis
        6. 4.6. Performance Models
        7. 4.7. Specifying Performance Objectives
          1. 4.7.1. Specifying a Service Level Agreement
          2. 4.7.2. Specifying Response Time
          3. 4.7.3. Specifying Cost
        8. 4.8. Concluding Remarks
        9. 4.9. Exercises
        10. Bibliography
          1. Bibliography
      5. 5. Case Study I: A Database Service
        1. 5.1. Introduction
        2. 5.2. Database Service Example
          1. 5.2.1. Preliminary Analysis of the Workload
          2. 5.2.2. Workload Clustering
        3. 5.3. Building a Performance Model
          1. 5.3.1. Apportioning Total Utilization to Individual Classes
          2. 5.3.2. Computing Service Demands
        4. 5.4. Using the Model
          1. 5.4.1. Adding a Third Disk
          2. 5.4.2. Using a Dual CPU System
          3. 5.4.3. Using Faster Disks
          4. 5.4.4. Moving to a 4-CPU System
        5. 5.5. Monitoring Tools
          1. 5.5.1. Hardware Monitors
          2. 5.5.2. Software Monitors
          3. 5.5.3. Hybrid Monitors
          4. 5.5.4. Event-trace Monitoring
          5. 5.5.5. Sampling Monitoring
        6. 5.6. Measurements Techniques
        7. 5.7. Obtaining Input Parameters
          1. 5.7.1. Measuring CPU Utilization
          2. 5.7.2. Overhead Representation
          3. 5.7.3. Arrival Rate
          4. 5.7.4. Concurrency Level
          5. 5.7.5. Number of Active Terminals and Think Time
          6. 5.7.6. CPU Service Demand
          7. 5.7.7. I/O Service Demands
        8. 5.8. Concluding Remarks
        9. 5.9. Exercises
        10. Bibliography
          1. Bibliography
      6. 6. Case Study II: A Web Server
        1. 6.1. Introduction
        2. 6.2. The Web Server
        3. 6.3. Preliminary Analysis of the Workload
        4. 6.4. Building a Performance Model
          1. 6.4.1. Computing Concurrency Levels
          2. 6.4.2. Computing Service Demands
        5. 6.5. Using the Model
        6. 6.6. Secure Downloads
        7. 6.7. Experimental Comparison of Two Servers
        8. 6.8. Concluding Remarks
        9. 6.9. Exercises
        10. Bibliography
          1. Bibliography
      7. 7. Case Study III: A Data Center
        1. 7.1. Introduction
        2. 7.2. The Data Center
        3. 7.3. Building a Model
        4. 7.4. Using the Model
        5. 7.5. Another Modeling Approach
        6. 7.6. A Cost Analysis
        7. 7.7. Concluding Remarks
        8. 7.8. Exercises
        9. Bibliography
          1. Bibliography
      8. 8. Case Study IV: An E-Business Service
        1. 8.1. Introduction
        2. 8.2. The E-Business Service
        3. 8.3. The E-Business Workload
        4. 8.4. Building a Performance Model
        5. 8.5. Using the Performance Model
        6. 8.6. Adding More Servers
        7. 8.7. Concluding Remarks
        8. 8.8. Exercises
        9. Bibliography
          1. Bibliography
      9. 9. Case Study V: A Help-Desk Service
        1. 9.1. Introduction
        2. 9.2. The Help Desk Service
          1. 9.2.1. Workload Characterization
          2. 9.2.2. Database Design
          3. 9.2.3. Transaction Logic
        3. 9.3. A Performance Model
          1. 9.3.1. Estimating the Number of I/Os
          2. 9.3.2. Estimating Service Demands
        4. 9.4. Techniques for SPE
          1. 9.4.1. Obtaining Data for SPE
        5. 9.5. Concluding Remarks
        6. 9.6. Exercises
        7. Bibliography
          1. Bibliography
    4. II. The Theory of Performance Engineering
      1. 10. Markov Models
        1. 10.1. Introduction
        2. 10.2. Modeling Context
        3. 10.3. Motivating Examples
        4. 10.4. Model Construction
        5. 10.5. Model Solution
        6. 10.6. Model Interpretation
        7. 10.7. Model Assumptions and Limitations
        8. 10.8. Generalized Birth-Death Models
        9. 10.9. Beyond the Basics
        10. 10.10. Chapter Summary
        11. 10.11. Exercises
        12. Bibliography
          1. Bibliography
      2. 11. Single Queue Systems
        1. 11.1. Introduction
        2. 11.2. Single Queue Single Server Systems
        3. 11.3. The M/M/1 Queue
        4. 11.4. The M/G/1 Queue
        5. 11.5. M/G/1 with Vacations
        6. 11.6. M/G/1 with Priorities
          1. 11.6.1. Non-Preemptive Priorities
          2. 11.6.2. Preemptive Resume Priorities
        7. 11.7. Approximation Results
        8. 11.8. Concluding Remarks
        9. 11.9. Exercises
        10. Bibliography
          1. Bibliography
      3. 12. Single Class MVA
        1. 12.1. Introduction
        2. 12.2. MVA Development
        3. 12.3. The MVA Algorithm
        4. 12.4. Balanced Systems
        5. 12.5. MVA Extensions and Limitations
        6. 12.6. Chapter Summary
        7. 12.7. Exercises
        8. Bibliography
          1. Bibliography
      4. 13. Queuing Models with Multiple Classes
        1. 13.1. Introduction
        2. 13.2. The Need for Multiple-Class Models
        3. 13.3. Simple Two-Class Model
        4. 13.4. Notation and Assumptions
        5. 13.5. Closed Models
          1. 13.5.1. Exact Solution Algorithm
          2. 13.5.2. Closed Models: Case Study
          3. 13.5.3. Approximate Solution Algorithms
        6. 13.6. Open Models
          1. 13.6.1. Analysis of Multiclass Open Models
          2. 13.6.2. Open Models: Case Study
        7. 13.7. Mixed Models
        8. 13.8. Concluding Remarks
        9. 13.9. Exercises
        10. Bibliography
          1. Bibliography
      5. 14. Queuing Models with Load Dependent Devices
        1. 14.1. Introduction
        2. 14.2. Motivating Example
          1. 14.2.1. Client-Server Performance
          2. 14.2.2. Design Questions for a CS Application
          3. 14.2.3. System and Workload Specification
        3. 14.3. Single Class Models with LD Devices
        4. 14.4. Multiclass Closed Models with LD Devices
        5. 14.5. Multiclass Open Models with LD Devices
        6. 14.6. Flow-Equivalent Server Method
        7. 14.7. Concluding Remarks
        8. 14.8. Exercises
        9. Bibliography
          1. Bibliography
      6. 15. Non Product-Form Queuing Models
        1. 15.1. Introduction
        2. 15.2. Modeling High Service Time Variability
          1. 15.2.1. The Decomposition Approach
          2. 15.2.2. New MVA-based Decomposition Approach
        3. 15.3. Modeling Blocking Effects
          1. 15.3.1. Single Class
          2. 15.3.2. Multiple Classes
        4. 15.4. Modeling Priority Scheduling
          1. 15.4.1. Two-Priority Example
          2. 15.4.2. SWIC Priority Algorithm
        5. 15.5. Modeling Software Contention
          1. 15.5.1. Single Class Algorithm
          2. 15.5.2. Open QN at the Software Level
          3. 15.5.3. The Multiclass Algorithm
        6. 15.6. Modeling Fork/Join Queuing Networks
        7. 15.7. Concluding Remarks
        8. 15.8. Exercises
        9. Bibliography
          1. Bibliography

    Product information

    • Title: Performance by Design: Computer Capacity Planning by Example
    • Author(s): Virgilio A.F. Almeida, Lawrence W. Dowdy, Daniel A. Menascé
    • Release date: January 2004
    • Publisher(s): Pearson
    • ISBN: 0130906735