You are previewing Windows 2000 Performance Guide.
O'Reilly logo
Windows 2000 Performance Guide

Book Description

It is characteristic of most computer systems that they do not degrade gradually. The painful reality is that performance is acceptable day after day, until quite suddenly it all falls apart. When this happens, the administrator needs to be prepared to help the organization get through the crisis. Computer applications are growing ever more intelligent and easy to use. One of the by-products of making applications easier to use is that they usually also require more resources to run. And wherever productivity is a central factor in the decisions you make, performance considerations loom large and continue to play an important role in system management. Are you wondering, for example, if more expensive equipment would give better performance? The answer is often yes, but not always. This book will show you why it is important to understand the performance characteristics of the hardware and of the workload, and how they match up against each other. Windows 2000 Performance Guide takes you through problem solving techniques like measurement methodology, workload characterization, benchmarking, decomposition techniques, and analytic queuing models. This book covers:

  • Processor performance

  • Application profiling and hardware considerations

  • Multiprocessing

  • Memory and paging

  • File cache

  • Disk performance

  • Networking

  • IIS

  • The horror stories of failed development projects that did not meet cost and performance specifications reflect the fact that expectations about what computer technology can do far exceed the reality. Even as hardware performance continues to improve, managing performance will not get perceptibly easier. This book will give you the tools and information you need to meet the challenges of performance management now and in the future. Many of the popular computer books out there promise easy answers, but this is the only book for those tricky situations that have no direct precedent. Windows 2000 Performance Guide will give you the information and the conceptual framework to become your own Windows 2000 performance expert.

    Table of Contents

    1. Windows 2000 Performance Guide
      1. Preface
        1. Intended Audience
        2. Organization of This Book
        3. Conventions Used in This Book
        4. How to Contact Us
        5. Acknowledgments
      2. 1. Perspectives on Performance Management
        1. Windows 2000 Evolution
        2. Tools of the Trade
          1. Performance Measures
            1. Bandwidth
            2. Throughput
            3. Service time
            4. Utilization
            5. Response time
          2. Optimizing Performance
            1. Single-server model
            2. Modeling assumptions
            3. Little’s Law
            4. M/M/1
          3. Queuing Models in Theory and Practice
          4. Exploratory Data Analysis
        3. Performance and Productivity
          1. The Transaction Model
          2. Designing for Performance
        4. Performance Management
          1. Rules of Thumb (ROTs)
          2. Is Performance Tuning Obsolete?
          3. Bottleneck Analysis
          4. Benchmarking
            1. Benchmark applicability
            2. Benchmark repeatability
            3. Benchmark engineering
        5. Problems of Scale
          1. Software Scalability
          2. Unrealistic User Expectations
          3. Physical Constraints
          4. Cost/Benefit Analysis
          5. The Future of Performance Analysis
          6. Internet Capacity Planning
        6. Performance Tools
          1. Performance Monitors
            1. Performance objects and counters
            2. Event tracing
            3. Code profilers
          2. Performance Databases
            1. Workload characterization
            2. Reporting
            3. Trending and forecasting
            4. Baselining
          3. Modeling
            1. Central Server model
            2. Mean value analysis
            3. Extending modeling technology
            4. Modeling studies
      3. 2. Measurement Methodology
        1. Performance Monitoring on Windows
        2. Performance Monitoring API
          1. Task Manager
          2. System Monitor
          3. Performance Objects
            1. The Registry interface
            2. Enumerating Perflib DLLs
            3. Base performance objects
            4. Monitoring disk performance
            5. Network counters
            6. Extensible counters
            7. Instances of objects
            8. Parent-child relationships
          4. Performance Counters
            1. Explain Text
            2. Counter types
            3. Difference and time difference counters
            4. Instantaneous counters
            5. Compound counters
        3. Performance Data Logging
          1. Data Logging Sessions
            1. Log file formats
            2. Scheduling background data collection
          2. Creating Summary Data
          3. Summarization
        4. Performance Monitoring Overhead
          1. Instrumentation Overhead
          2. Data Collection Overhead
            1. GUI overhead
            2. Text file log format
            3. Monitoring remote systems
          3. Post-Processing Overhead
        5. A Performance Monitoring Starter Set
      4. 3. Processor Performance
        1. Windows 2000 Design Goals
          1. Portability
          2. Simplicity
        2. The Thread Execution Scheduler
          1. Multiprogramming
            1. Windows 2000 Server multiuser environments
            2. Foreground/background execution
          2. Thread State
          3. Processor Performance Monitoring
            1. Measurement methodology
            2. Normalizing CPU time
            3. Processor state
            4. The Processor Ready Queue
            5. Measurement inconsistencies
            6. Transient threads and processes
          4. Managing the Ready Queue
            1. Interrupts
            2. Voluntary wait
            3. Involuntary wait
            4. Time allotment exceeded
          5. Interrupt Processing
          6. Thread Priority Adjustments
          7. Dynamic Priority Adjustments
            1. Priority boost following an interrupt
            2. Disabling dynamic adjustments
            3. I/O-bound threads
          8. Time-Slicing
            1. The quantum time allotment
            2. Priority decay
            3. Tuning the time-slice value
          9. Foreground/Background Adjustments
            1. NT Version 3.51 foreground priority boost
            2. NT Version 4.0 foreground application quantum stretching
          10. Starvation Avoidance
          11. Deadlock Detection and Avoidance
        3. Thread Scheduling Tuning
          1. Task Manager Adjustments
          2. WarpNT
          3. Windows 2000 System Thread Priority
          4. File and Print Services
          5. Server Applications
            1. MS SQL Server
            2. MS Exchange Server
            3. MS Internet Information Server (IIS)
          6. Job Resource Limits
      5. 4. Optimizing Application Performance
        1. Background
          1. The Development Tools
        2. The Application Tuning Case Study
          1. Visual C++ Profiler
          2. Visual Quantify
            1. Loading modules
            2. The Windows 2000 performance monitoring interface
          3. Intel VTune
        3. Intel Processor Hardware Performance
          1. Intel IA-32 Architecture Evolution
          2. Pipelining
          3. Pipeline Stalls
          4. P5 Superscalar Architecture
            1. Optimizing instruction streams for the Pentium
            2. Using VTune to identify instruction execution hotspots
            3. Code optimization strategies
          5. Intel P6 Microarchitecture
            1. Instruction execution parallelism
            2. Micro-ops
            3. Performance counters
          6. IA-64
      6. 5. Multiprocessing
        1. Multiprocessing Basics
          1. Shared-Memory Multiprocessing
            1. Operating system support
            2. Thread scheduling
            3. Processor affinity
            4. Serialization and locking
            5. Shared-memory multiprocessor programming model
            6. Windows 2000 serialization services
          2. Shared-Memory Multiprocessor Scalability
            1. Speed-up factors
              1. Serializing instructions
              2. Cache effects
              3. Spin locks
        2. Cache Coherence
          1. MESI Snooping Protocol
        3. Pentium Pro Hardware Counters
          1. Shared-Memory Bus Utilization Measurements
        4. Optimization and SMP Configuration Tuning
        5. Configuring Server Applications for Multiprocessing
          1. Multithreaded Applications
          2. Thread Pooling
          3. Monitoring Thread Pooling Applications
            1. IIS Active Server Pages
            2. File Server
            3. Transaction Server
            4. Coding practices
        6. Partitioning Multiprocessors
          1. NDIS PfsrocessorAffinityMask
          2. Guidelines for Setting Processor Affinity
          3. SQL Server
          4. NCR SMP Utilization Manager
      7. 6. Memory Management and Paging
        1. Virtual Memory
          1. Virtual Addressing
            1. Page fault resolution
          2. Performance Concerns
            1. Operating system support
          3. Committed Pages
            1. Commit Limit
            2. Memory leaks
            3. Paging file extension
            4. Virtual memory shortage alerts
            5. Multiple paging files
            6. Clustered paging I/O
            7. Moving the paging file
          4. Process Virtual Address Spaces
            1. Shared addresses
            2. Extended addressing
            3. Virtual address translation
            4. Page tables
            5. Addressing exceptions
            6. Memory status bits
            7. Address Windowing Extensions (AWE)
            8. Win64
            9. Invalid PTEs
        2. Page Replacement
          1. Available Bytes
          2. Portability Goals
          3. LRU
            1. How LRU works
            2. Measurement support
            3. The Clock algorithm
            4. Multiprocessor effects
          4. Putting It All in Focus
          5. Process Working Set Management
            1. Shared DLLs
            2. System working set
            3. Accounting for RAM usage
            4. Detecting memory leaks
        3. Memory Capacity Planning
          1. Measuring Memory Utilization
            1. Available Bytes
            2. Physical disk constraints
            3. Paging file configuration guidelines
          2. Memory Contention
            1. Committed Bytes: Installed RAM
            2. Pool Paged Bytes:Pool Paged Resident Bytes
      8. 7. File Cache Performance and Tuning
        1. File Cache Sizing
        2. Cache Performance Counters
          1. Cache Size
          2. Cache Hit Ratio
        3. Universal Caching
          1. Caching and Disk Activity Statistics
          2. Cache Loading Effects
        4. How the Windows 2000 File Cache Works
          1. The Copy Interface
          2. Lazy Write
            1. Physical disk updates
              1. Disk Idle writes
              2. Threshold-triggered lazy write flushes
              3. Stolen mapped file pages
            2. Write-through caching
          3. The Mapping Interface
          4. MDL Interface
          5. Performance Monitoring Considerations
        5. Cache Tuning
          1. Scenario 1: Effective Caching
          2. Scenario 2: Overrunning the Cache
          3. Scenario 3: Favoring the Cache
          4. The LargeSystemCache Tuning Knob
          5. No Minimum File Cache Setting
          6. The CacheSet Utility
      9. 8. Disk Subsystem Performance
        1. The I/O Subsystem
          1. Filter Drivers
          2. Filesystem Drivers
          3. Class Drivers
          4. Mini-Drivers
          5. The Hardware Layer
        2. Disk Architecture
          1. Track Buffer
          2. Prefetching Algorithm
          3. Zoned Bit Recording
        3. I/O Buses
          1. VESA Local Bus
          2. PCI Bus
          3. Configuration Tips
        4. Disk Interfaces
          1. What Is an Interface?
          2. The IDE Interface
            1. History
            2. Topology
            3. Commands and transfer modes
          3. The SCSI Bus
            1. Topology
            2. Standards and transfer modes
            3. Commands
            4. Tagged-command queuing
            5. Host adapter configuration
          4. SCSI Versus IDE
          5. Fibre Channel
          6. Intelligent Input Output (I2O)
        5. System Monitor Counters
          1. Measurement Methodology
          2. Counters
        6. Workload Studies
          1. Intel’s Iometer
          2. Sequential Versus Nonsequential Workloads
      10. 9. Filesystem Performance
        1. Storage Management
          1. Basic Disks
          2. Dynamic Disks
        2. Filesystems
          1. The FAT Filesystem
          2. The NTFS Filesystem
            1. Master file table
            2. Attributes
            3. Data streams
            4. Directories
            5. Filesystem transactions
            6. Advanced filesystem features
          3. Comparison of Filesystems
        3. Defragmentation
        4. System Monitor Counters
        5. Comparing Filesystem Performance
          1. Postmark
          2. Test Results
        6. Selecting a Filesystem
      11. 10. Disk Array Performance
        1. Disk Striping
        2. Enter RAID
        3. RAID Disk Organizations
          1. RAID Level 0
            1. Performance considerations
            2. Synchronized spindles
            3. Striped disk reliability
          2. RAID Level 1
            1. Remote mirroring
            2. RAID Level 0/1
          3. RAID Level 2
          4. RAID Level 3
            1. Performance
            2. Reduced mode operation
          5. RAID Level 4
            1. RAID write performance penalty
            2. EMC Symmetrix
          6. RAID Level 5
          7. Additional Fault-Tolerant Options
        4. RAID and Windows 2000
          1. Hardware RAID
            1. Internal RAID controllers
            2. Write caching
            3. Windows 2000 file cache
            4. External RAID enclosures
            5. Configuring external RAID controllers
            6. Performance considerations
            7. Configuration guidelines
            8. SCSI command tag queuing
          2. Software RAID
            1. Spanned volumes
            2. Striped volumes
            3. Mirrored volumes
            4. RAID 5 volumes
        5. Benchmark Testing
          1. EMC CLARiiON
            1. Benchmarking methodology
            2. Reaching steady state
            3. Hardware RAID configuration options
            4. RAID Level 0 performance
            5. RAID Level 5 performance
            6. RAID Level 0/1 performance
          2. Disk Arrays Based on IDE Drives
        6. Selecting a RAID Configuration
      12. 11. Introduction to Networking Technology
        1. Networking Basics
          1. Local Area Networks (LANs)
            1. Wiring hubs
            2. Switched networks
          2. Wide Area Networks (WANs)
          3. Packets
            1. Windows 2000 networking services
            2. Protocol stack
            3. Processing of packets
            4. Benefits of layering
            5. Using packet sniffers
          4. Windows 2000 Networking Architecture
        2. Bandwidth and Latency
          1. Bandwidth
          2. Latency
        3. Media Access Layer
          1. Ethernet
            1. Arbitration
            2. CSMA/CD
            3. Collision detection
            4. Back-off and retry
            5. Performance monitoring
          2. Gigabit Ethernet
            1. PC architecture considerations
            2. Jumbo frames
            3. Improved TCP/IP protocol stack
          3. Token Ring
            1. Arbitration
          4. FDDI Rings
        4. Internet Protocol Layer
          1. IP Routing
            1. Routing tables
            2. Router performance
          2. IP Addressing
          3. DNS
            1. DHCP
          4. IP Header Fields
            1. Type of Service (TOS)
            2. Packet fragmentation and reassembly
            3. Time To Live (TTL)
            4. Protocol
          5. ARP
          6. ICMP
            1. PMTU
            2. ping
          7. The Internet Backbone
        5. Host-to-Host Connections
          1. UDP
          2. TCP
            1. Source and destination ports
            2. Byte sequence numbers
            3. Acknowledgment
            4. Header length
            5. Flags
            6. Window
            7. Options
            8. TCP sessions
            9. Session connections
            10. KeepAlive messages
            11. Session termination
            12. Sliding window
            13. Selective acknowledgment
            14. Send window
            15. Sliding window in action
            16. Adaptive retransmission
            17. Timestamps option
            18. Calculating Retransmission Timeout (RTO)
            19. Karn’s algorithm
            20. Fast retransmit
            21. CongestionWindow
            22. Slow Start
            23. Additive Increase/Multiplicative Decrease
            24. Congestion control in action
      13. 12. Internet Information Server Performance
        1. Web Server Architecture
        2. Sources of Information
          1. System Monitor Metrics
          2. IIS Logs
            1. NCSA Common Log Format
            2. Microsoft IIS Log Format
            3. W3C Extended Log Format
            4. ODBC Log Format
          3. The IIS Metabase
        3. Web Server Benchmarks
          1. SPECweb96/SPECweb99
          2. Web Capacity Analysis Tool (WCAT)
            1. Architecture
            2. Workload
            3. Running a test
            4. Developing a custom test
          3. Web Application Stress
          4. WebBench
          5. Webstone
        4. Performance Management
          1. Managing the CPU
            1. Connection requests
            2. Limiting concurrent connections
            3. Interrupt processing
            4. HTTP/1.1 versus HTTP/1.0
            5. Dynamic content generation
            6. Application isolation
            7. Process throttling
            8. ASP request queueing
          2. Managing the Memory
            1. The IIS object cache
            2. Paged and non-paged pool
            3. The file cache
            4. Memory utilization by CGI and ASP scripts
            5. Monitoring memory utilization
          3. Managing the Disk
          4. Managing the Network
            1. Performance monitor counters
        5. Load Balancing and Server Clustering
      14. 13. Bibliography
        1. Performance Management
        2. Measurement Methodology
        3. Processor Performance
        4. Optimizing Application Performance
        5. Multiprocessing
        6. Memory Management and Paging
        7. File Cache Performance and Tuning
        8. Disk Subsystem Performance
        9. Filesystem Performance
        10. Disk Array Performance
        11. Networking Technology
        12. Internet Information Server Performance
      15. Index
      16. Colophon