Books & Videos

Table of Contents

  1. Preliminary Considerations

    1. Chapter 1 The Quick and the Dead

      1. Questions for the Browser Side
      2. Questions for the Server Side
      3. Key Recommendations
    2. Chapter 2 Web Site Architecture

      1. Trade-offs
      2. Elements
      3. Example Web Site Architectures
      4. Trends
      5. Sample Configurations
      6. Key Recommendations
    3. Chapter 3 Capacity Planning

      1. Do the Math . . .
      2. . . . But Trust Your Eyes More than the Math
      3. Questions to Ask
      4. How Much Bandwidth Do You Need?
      5. How Fast a Server Do You Need?
      6. How Much Memory Do You Need?
      7. Key Recommendations
    4. Chapter 4 Performance Monitoring

      1. Parameters of Performance
      2. Latency and Throughput
      3. Utilization
      4. Efficiency
      5. Monitoring Web Performance Using Perl
      6. Automatically Generating Monitoring Scripts Using Sprocket
      7. Using a Relational Database to Store and Retrieve Your Monitoring Data
      8. Monitoring Machine Utilization with rstat
      9. Monitoring Per-Process Statistics
      10. Generating Graphs from ps Data
      11. Monitoring Other Things
      12. Making a System Dashboard Web Page
      13. Key Recommendations
    5. Chapter 5 Load Testing

      1. Load Test Preparation
      2. Trade-offs with Load Testing Tools
      3. Writing Your Own Load Testing Tools
      4. Benchmark Specifications and Benchmark Tests
      5. Other Resources
      6. Key Recommendations
    6. Chapter 6 Performance Analysis

      1. Using analysis.cgi to Find a Bottleneck
      2. Snooping HTTP with Sprocket
      3. Look at Connections
      4. Log File Analysis
      5. Hits per Second
      6. A Few More Tips
      7. Key Recommendations
    7. Chapter 7 Reliability

      1. Typical Failures
      2. Dependencies
      3. Smoothing Outages
      4. Key Recommendations
    8. Chapter 8 Security

      1. HTTPS and SSL
      2. Firewalls
      3. Bastion Hosts
      4. chroot
      5. Key Recomendation
    9. Chapter 9 Case Studies

      1. Database Table Growing Without Limit
      2. Reverse DNS Lookups Slows Logging
      3. Kinked Cable
      4. Database Connection Pool Growth Limits Performance
      5. Key Recommendation
    10. Chapter 10 Principles and Patterns

      1. Principles of Performance Tuning
      2. Patterns of Performance Improvement
      3. Key Recommendations
  2. Tuning in Depth

    1. Chapter 11 Browsers

      1. How Browsers Work
      2. Types of Browsers
      3. The Perfect Browser
      4. Browser Speed
      5. Browser Tuning Tips
      6. Non-Browser Web Clients
      7. Key Recommendations
    2. Chapter 12 Client Operating System

      1. Microsoft Windows
      2. Macintosh
      3. Unix
      4. Key Recommendations
    3. Chapter 13 Client Hardware

      1. CPU
      2. RAM
      3. Cache
      4. Bus
      5. Disk
      6. Video
      7. BIOS
      8. Key Recommendations
    4. Chapter 14 Lines and Terminators

      1. Forwarding and Latency
      2. Your Modem, the Information Driveway
      3. ISDN
      4. Cable Modems
      5. xDSL
      6. Higher Capacity Lines
      7. Intranets
      8. Network Modeling Tools
      9. The Internet
      10. PTTs
      11. Key Recommendations
    5. Chapter 15 Network Protocols

      1. Power and Protocols
      2. Factors Affecting Network Protocol Performance
      3. The Protocols of the Web
      4. Key Recommendations
    6. Chapter 16 Server Hardware

      1. Box on a Wire
      2. Good I/O
      3. Multiple Busses
      4. Fast Disks
      5. Lots of Memory
      6. Scalability
      7. Network Interface Card
      8. Bus
      9. Memory
      10. RAM Characteristics
      11. CPU
      12. Symmetric Multiprocessing (SMP)
      13. Disk Activity and PID
      14. Key Recommendations
    7. Chapter 17 Server Operating System

      1. Unix and the Origin of the Web
      2. Unix Flavors
      3. System Calls Versus Library Calls
      4. Processes and the Kernel
      5. The Filesystem
      6. The Windowing System
      7. Versions and Patches
      8. Configurable OS Parameters
      9. Unix OS Monitoring Tools
      10. System Call Tracers
      11. Network Snooping Tools
      12. How Many Connections Can My Server Handle?
      13. How Many Processes Can My Server Handle?
      14. How Quickly Can My Server Fork New Processes?
      15. Unix Versus NT as the Web Server OS
      16. The Exokernel
      17. Key Recommendations
    8. Chapter 18 Server Software

      1. The Evolution of Web Servers
      2. System Calls Made by a Web Server
      3. How Servers Fail
      4. Configuring Apache and Netscape Web Servers
      5. Other Servers
      6. Missing Features
      7. Proxy Servers
      8. Hierarchical Caches
      9. Key Recommendations
    9. Chapter 19 Content

      1. Size Matters
      2. As Good As It Gets
      3. Caching and Differences
      4. HTML and Compression
      5. Performance Tips for HTML Authors
      6. The Document Object Model
      7. Graphics
      8. Audio
      9. Video
      10. Key Recommendations
    10. Chapter 20 Custom Applications

      1. Programmers
      2. CGI Programs
      3. CGI Internals and Performance Problems
      4. General CGI Tips
      5. CGI Language-Specific Optimization Tips
      6. Daemonize It
      7. CGI Database Access Performance
      8. Logging
      9. NSAPI and ISAPI
      10. DOM
      11. JSP, ASP, PHP
      12. Key Recommendations
    11. Chapter 21 Java

      1. Java Will Never Be Good Enough for GUI Applications
      2. Java Is Good Enough for the Server Side
      3. Performance Problems Intrinsic to Java
      4. Coding Tips
      5. Compilers
      6. Profile Your Code
      7. Decompilers
      8. OS-Level Profiling Tools
      9. JITs
      10. Static Compilers
      11. Virtual Machines
      12. Runtime Options
      13. Java Chips
      14. Java Benchmarks
      15. Web Sites with Java Performance Info
      16. Key Recommendations
    12. Chapter 22 Databases

      1. Do You Really Need a Relational Database?
      2. Performance Tips
      3. How Many Connections Can Your Database Handle?
      4. When the Database Is Overloaded
      5. Analysis
      6. Key Recommendations
  1. Appendix Web Performance Product Lists and Reviews

    1. Problems with Commercial Tools

    2. Monitoring Tools

    3. Load Generation Tools

    4. Preloaders

    5. Network Optimizers

    6. IP Traffic Management Products

    7. Content Compressors

    8. Hybrid Development Tools/Databases

    9. Java Profilers and Optimizers

    10. Caching Services

    11. Professional Services

    12. Load Balancers

    13. Modeling Tools

  2. Colophon