Web Performance Tuning, 2nd Edition

Book description

As long as there's been a Web, people have been trying to make it faster. The maturation of the Web has meant more users, more data, more features, and consequently longer waits on the Web. Improved performance has become a critical factor in determining the usability of the Web in general and of individual sites in particular.Web Performance Tuning, 2nd Edition is about getting the best possible performance from the Web. This book isn't just about tuning web server software; it's also about streamlining web content, getting optimal performance from a browser, tuning both client and server hardware, and maximizing the capacity of the network itself.Web Performance Tuning hits the ground running, giving concrete advice for quick results -- the "blunt instruments" for improving crippled performance right away. The book then shifts gears to give a conceptual background of the principles of computing performance. The latter half of the book examines each element of a web transaction -- from client to network to server -- to find the weak links in the chain and show how to strengthen them.In this second edition, the book has been significantly expanded to include:

  • New chapters on Web site architecture, security, reliability, and their impact on performance
  • Detailed discussion of scalability of Java on multi-processor servers
  • Perl scripts for writing web performance spiders that handle logins, cookies, SSL, and more
  • Detailed instructions on how to use Perl DBI and the open source program gnuplot to generate performance graphs on the fly
  • Coverage of rstat, a Unix-based open source utility for gathering performance statistics remotely
In addition, the book includes many more examples and graphs of real-world performance problems and their solutions, and has been updated for Java 2.This book is for anyone who has waited too long for a web page to display, or watched the servers they manage slow to a crawl. It's about making the Web more usable for everyone.

Publisher resources

View/Submit Errata

Table of contents

  1. Web Performance Tuning, 2nd Edition
  2. Preface
    1. What Is This Book Good For?
    2. Audience for This Book
    3. Assumptions of This Book
    4. How This Book Is Organized
      1. Part I: Preliminary Considerations
      2. Part II: Tuning in Depth
    5. Font Conventions
    6. How to Contact Us
    7. Web Site Updates and Code Examples
    8. Other Books and Resources
      1. Books
      2. Web Sites with Performance Information
      3. Newsgroups with Web Performance Content
    9. Disclaimer
    10. Acknowledgments for the Second Edition
  3. I. Preliminary Considerations
    1. 1. The Quick and the Dead
      1. Questions for the Browser Side
        1. Is Your Modem On?
        2. Is Your Modem Connected to Your Computer?
        3. Did the Other End Hang Up on You?
        4. Are You Sending Data over the Modem?
        5. Do You Have a Valid IP Address and Gateway Router?
        6. Is the Browser Hanging?
        7. Is Your Browser in “Offline” Mode?
        8. Can You Still Resolve Names?
        9. Is an Intermediate Router Down or Very Slow?
        10. Is the Remote Site Overloaded?
        11. Is the Remote Site Down?
        12. Is There a Mirror Site?
        13. Did You Already Get Most of the Page?
        14. Is Your MTU too Big, or too Small?
        15. Do You Need to Use a Proxy Server?
        16. Does Your Proxy Handle https URLs?
        17. Is There a Faster Proxy Server?
        18. Are You Being Blocked Deliberately?
        19. Are You Running too Many Programs?
        20. Do You Have Enough Memory?
        21. Is Your CPU Fast Enough?
        22. Do You Have Enough Bandwidth?
        23. Are Excessive Images Dragging Down Your Performance?
        24. Is Browser Startup Time Getting You Down?
        25. Are You Using a Slow Browser?
        26. Is Your Cache Big Enough?
        27. Are You Wasting Time Verifying Cached Pages?
        28. Is Java Startup Time Annoying You?
        29. Could You Benefit from Using a Specific ISP?
        30. Are You Surfing at Slow Times?
        31. Could Your Organization Benefit by Installing a Proxy Server?
      2. Questions for the Server Side
        1. Is Your Server Sleeping?
        2. Is Your DNS Server Overloaded?
        3. Do Your Images All Have Sizes and ALT Tags?
        4. Do All Your Applets Have ALT Tags?
        5. Are There Needless or Slow Redirects?
        6. Is Your Web Server Wasting Time on Reverse DNS Lookups?
        7. Is Your Web Server Retransmitting too Much?
        8. Are You too Far Away from Your Users?
        9. Is Your Server Network Connection Overloaded?
        10. Is Your Server CPU-Bound?
        11. Are You Short of Memory?
        12. Are Your Disks too Busy?
        13. Could You Benefit from Caching Services?
        14. Are You Suffering from Performance Bugs That Have Already Been Fixed?
        15. Is cron Killing Performance at Regular Intervals?
        16. Is Your Web Site Being Crowded by Other Processes?
        17. Are You Wasting Time with SSIs?
        18. Is Your Content Unncessarily Dynamic?
        19. Is Your Database Connection Pool too Small?
        20. Is Your Database Connection Pool Leaking?
        21. Are Your Hubs, Switches, and Routers Overloaded or Misconfigured?
        22. Do Java Processes Suddenly Stall?
        23. Are You Using CORBA, EJBs, or RMI?
        24. Are You Doing Excessive Logging?
        25. Are You Serving Content Directly from a Revision Control System?
        26. The Server Is Not at All Busy, but It’s Slow!
      3. Key Recommendations
    2. 2. Web Site Architecture
      1. Trade-offs
        1. State Versus Scalability
        2. Replication Versus Simplicity
        3. Synchronous Versus Asynchronous
        4. Connectionless Versus Connectionful
        5. Planning Versus Doing
        6. Procedural Versus Object-Oriented
      2. Elements
        1. Browser
        2. Load Balancer
          1. DNS level
          2. IP level
          3. Ethernet level
        3. Web Server
        4. Middleware
        5. Database
      3. Example Web Site Architectures
        1. One Box
        2. Stacks
        3. Layers
        4. Linux on the Mainframe
        5. Real Time
      4. Trends
      5. Sample Configurations
        1. Low Volume
        2. Medium Volume
        3. High Volume
      6. Key Recommendations
    3. 3. Capacity Planning
      1. Do the Math . . .
      2. . . . But Trust Your Eyes More than the Math
      3. Questions to Ask
        1. How Many HTTP Operations per Unit Time Do You Expect?
        2. What Is the Purpose of the Web Site?
        3. How Tolerant Are Your Users?
        4. Will You Provide Any Streaming Media?
        5. Will the Web Server Spawn Additional Processes?
        6. What Other Processes Need to Run on the Web Server or over the Network?
        7. What Sort of Scalability Do You Need?
        8. What Is Your Budget?
        9. How Available Does Your Site Have to Be?
        10. Can You Force Suppliers to Compete?
        11. Hey Kid, Want to Try a Browser?
        12. Other Questions
      4. How Much Bandwidth Do You Need?
        1. Latencies Are More Important than Bandwidth
        2. Thinking About Bandwidth
        3. Estimating Web Server Network Bandwidth
      5. How Fast a Server Do You Need?
      6. How Much Memory Do You Need?
        1. Memory for the Operating System
        2. Memory for httpd
        3. Memory for Content
        4. Memory for CGIs
      7. Key Recommendations
    4. 4. Performance Monitoring
      1. Parameters of Performance
      2. Latency and Throughput
        1. Network Latency
        2. Measuring Network Latency and Throughput
          1. Using FTP
          2. Other performance measures
      3. Utilization
      4. Efficiency
        1. Using a Shell Script
        2. Using C
        3. Using Perl
      5. Monitoring Web Performance Using Perl
        1. Plotting Results with Gnuplot
        2. An Example Monitoring Script in Perl
        3. The Pieces
      6. Automatically Generating Monitoring Scripts Using Sprocket
      7. Using a Relational Database to Store and Retrieve Your Monitoring Data
        1. Storing Data
        2. Retrieving Data
      8. Monitoring Machine Utilization with rstat
        1. Storing rstat Data in a Relational Database
        2. Using rstat Data
        3. Getting Data from the Database to Standard Output
        4. Generating Graphs Directly from an rstat Database
      9. Monitoring Per-Process Statistics
        1. Using CGIs to Run Tools
        2. Using rstat to Trigger Deeper Analysis
        3. Using Telnet from Perl
      10. Generating Graphs from ps Data
      11. Monitoring Other Things
        1. Using Java for Monitoring
      12. Making a System Dashboard Web Page
        1. Danger! Excessive Monitoring is Hazardous to Your Web Site’s Health
        2. SNMP
        3. RMON
        4. ARM
        5. Other Resources
      13. Key Recommendations
    5. 5. Load Testing
      1. Load Test Preparation
        1. Watch Out for Clock Changes
        2. Why Is Production Performance Different from Test Performance?
      2. Trade-offs with Load Testing Tools
      3. Writing Your Own Load Testing Tools
        1. The Timer Problem
        2. Load Testing by Excessive Monitoring
        3. Synchronizing a Load Test
        4. Randomizing a Load Test
        5. Help, I Have to Stop My Load Test!
        6. Generating Network Load
      4. Benchmark Specifications and Benchmark Tests
        1. WebStone
        2. SPECweb99
        3. TPC-C and TPC-D
        4. Proxy Benchmarks
        5. Vendor-Standard Benchmarks
        6. CaffeineMark
      5. Other Resources
      6. Key Recommendations
    6. 6. Performance Analysis
      1. Using analysis.cgi to Find a Bottleneck
      2. Snooping HTTP with Sprocket
      3. Look at Connections
      4. Log File Analysis
        1. Average Transfer Size
        2. Response Size Distribution
      5. Hits per Second
        1. Variable Load and Queue Length
        2. When Exactly Are Hits Logged?
        3. Who Is the Most Common User?
        4. Which Process Is Mine?
        5. Who Is Using That File?
        6. What Files Are My Process Using?
        7. What Happens if the Database Is Hung?
      6. A Few More Tips
      7. Key Recommendations
    7. 7. Reliability
      1. Typical Failures
        1. Disk Full
        2. Process Out of File Descriptors
        3. C Pointer Error
        4. Memory Leaks
        5. Thread Deadlock
        6. Dead Process Holding Lock
        7. Server Overloaded
        8. Load Balancer Fails to Detect Dead Machine
        9. Subnet Flooded
        10. Out of ptys
        11. Database Out of Cursors
        12. Bad Device Driver
        13. Hardware Failures
        14. Power Outage
        15. Administrator on Wrong Server
        16. Wildcards Including Wrong File
        17. Permissions Problems
        18. Path Problems
        19. Patch Problems
        20. Cascade of Overloads
        21. Monitoring Causing Failures
        22. Retries Cause Further Failures
        23. Critical Tables Locked by Accident
        24. Using a Database Where Files Will Do
        25. Program Fails to Reconnect to Database After Failure
        26. Program Fails to Restart After Reboot
        27. Split-Brain Syndrome
        28. Firewall “Cleanup” Blocks Essential Service
        29. Screen Scraping Fails Because of Design Change
      2. Dependencies
      3. Smoothing Outages
      4. Key Recommendations
    8. 8. Security
      1. HTTPS and SSL
      2. Firewalls
      3. Bastion Hosts
      4. chroot
      5. Key Recomendation
    9. 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. 10. Principles and Patterns
      1. Principles of Performance Tuning
        1. Sometimes You Lose
        2. To Measure Something Is to Change It
        3. Reading Is Fundamental
        4. There Is No Free Lunch
        5. Returns Diminish
        6. Portability Will Reduce Performance
        7. Increasing Abstraction Will Reduce Performance
        8. Security Will Reduce Performance
        9. Memory Is Hierarchical
        10. Caches Depend on Locality of Reference
        11. I/O Is Slow
        12. Information Is Relative
        13. Hardware Is Cheap, Software Is Expensive
        14. The Goal of Tuning Is Simultaneous Failure
        15. Better Is Relative
        16. Bits Are Cost
        17. Internet Performance Degrades Nonlinearly
        18. Tuning at the Highest Level Gives the Biggest Gains
        19. Whatever Occurs Once Is Likely to Happen Again Soon
        20. The 80/20 Rule
        21. It’s Not What You Know, It’s Whom You Know
      2. Patterns of Performance Improvement
        1. Amortization
        2. Caching
        3. Profiling
        4. Parallel Processing
        5. Using What You Know
        6. Simplicity
      3. Key Recommendations
  4. II. Tuning in Depth
    1. 11. Browsers
      1. How Browsers Work
      2. Types of Browsers
        1. Netscape
        2. Internet Explorer
        3. Opera
        4. Neoplanet
        5. WebTV
        6. Cello
        7. Mosaic
        8. Lynx
        9. Amaya
        10. Tango
      3. The Perfect Browser
      4. Browser Speed
      5. Browser Tuning Tips
        1. General Tips
          1. Upgrade
          2. Do less
          3. Use shortcuts
          4. Increase caches
          5. Reboot
          6. Multitask
          7. Stop it
          8. Use Java plug-in
          9. Browse in a new window
        2. Internet Explorer Tips
          1. Don’t redraw while scrolling
          2. Browse in a new process
        3. Netscape Tips
          1. Prestart Java
          2. Use fewer colors
          3. Make smaller buttons
      6. Non-Browser Web Clients
        1. Gnutella and Peer to Peer
      7. Key Recommendations
    2. 12. Client Operating System
      1. Microsoft Windows
        1. System Clutter
        2. Specific Video Drivers
        3. Memory and Disk
        4. System Monitor
        5. Network Utilities
        6. MTU
      2. Macintosh
        1. 68K Emulation
        2. Networking
        3. Memory and Disk
        4. Extensions
      3. Unix
      4. Key Recommendations
    3. 13. Client Hardware
      1. CPU
      2. RAM
      3. Cache
      4. Bus
      5. Disk
        1. IDE
        2. SCSI
        3. Fragmentation
      6. Video
        1. MMX
        2. Colors and Resolution
        3. Drivers
        4. 3D and Video Clips
        5. Video Card Benchmarks
        6. I/O Port
        7. The UART
      7. BIOS
      8. Key Recommendations
    4. 14. Lines and Terminators
      1. Forwarding and Latency
      2. Your Modem, the Information Driveway
        1. Latency and Throughput, Modem to Modem
        2. Getting Synchronous
        3. Hardware Compression
        4. Error Correction
        5. Line Quality
        6. Internal Modems Are Faster
        7. UART Buffer Overruns
        8. AT Commands and Dialing Time
        9. Bonding Channels
      3. ISDN
      4. Cable Modems
      5. xDSL
      6. Higher Capacity Lines
        1. 56K, T1, and T3
        2. Frame Relay
        3. ATM
        4. Satellite
      7. Intranets
        1. Partitioning
        2. Hardware for Partitioning
        3. Ethernet
        4. Packet Snooping
        5. NIC Buffers
        6. Fast Ethernet
        7. Switched Ethernet
        8. Ethernet Cabling
        9. Noise
      8. Network Modeling Tools
      9. The Internet
        1. Bypassing the Internet
        2. NAPs
        3. ISPs
          1. Placement
          2. ISP performance
          3. Choosing an ISP
          4. Co-location and mirroring
        4. Routers
        5. Placing Blame
        6. The Future of the Internet
          1. Internet2
          2. NGI
      10. PTTs
      11. Key Recommendations
    5. 15. Network Protocols
      1. Power and Protocols
      2. Factors Affecting Network Protocol Performance
        1. Fixed- Versus Variable-Sized Packets/Cells/Frames
        2. Piggybacking
        3. Pipelining Versus ACK-ing Each Packet
        4. Full/half duplex
        5. Errors
        6. Number of Hops
        7. Layers
      3. The Protocols of the Web
        1. ARP
        2. PPP
        3. Routing Protocols
        4. IP
        5. TCP
          1. Use latest TCP patches
          2. TCP parameters
          3. Listen queues
          4. Retransmission delay
          5. TIME_WAIT interval
          6. Abort interval
          7. Maximum segment lifetime and maximum connection rate
          8. Keepalive interval
          9. Receive window
          10. Delayed ACK
          11. Slow start
          12. Maximum Segment Size
        6. Monitoring TCP
        7. T/TCP
        8. UDP
        9. DNS
        10. NFS
        11. HTTP
          1. Stateless and connectionless
          2. Asymmetric
          3. Text-based
          4. Compression
          5. Cache control
          6. The trailing slash
          7. HTTP 1.1 improvements
          8. HTTP proxy request format
          9. Byterange downloads
          10. HTTP and filesystems
        12. FTP
        13. NNTP
        14. CORBA
        15. X
      4. Key Recommendations
    6. 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
        1. CPU Construction
      12. Symmetric Multiprocessing (SMP)
        1. Testing Sun SMP Scalability
        2. Disk
        3. Disk Architecture and Parameters
        4. IDE
        5. EIDE
        6. SCSI
        7. Fibre Channel
        8. RAID
        9. Typical Disk Performance
        10. Fragmentation
      13. Disk Activity and PID
      14. Key Recommendations
    7. 17. Server Operating System
      1. Unix and the Origin of the Web
      2. Unix Flavors
        1. Solaris
        2. AIX
        3. Digital Unix
        4. Linux
        5. Irix
        6. BSD
        7. Mach OS
      3. System Calls Versus Library Calls
      4. Processes and the Kernel
        1. Scheduling
        2. Kernel Context
        3. Unix and httpd
          1. Solaris Network Cache and Accelerator
          2. Linux khttpd
        4. Reducing the Load on the OS
        5. Process Creation
        6. Address Space
        7. Copying in Memory
        8. Reclaiming Memory
      5. The Filesystem
        1. Filename Length
        2. Full Filesystems
        3. Directories
        4. Filesystem Caching
        5. Directory Name Lookup Cache
        6. Fragmentation
      6. The Windowing System
      7. Versions and Patches
      8. Configurable OS Parameters
        1. Number of File Descriptors
        2. Number of Processes
        3. Network Buffers
        4. Memory Limits
        5. Flushing Frequency
        6. Priority
        7. Timer Interrupt
      9. Unix OS Monitoring Tools
        1. ps
        2. perfbar
        3. perfmeter
        4. perfmon
        5. rstat
        6. rup
        7. hstat
        8. top
        9. xload
      10. System Call Tracers
      11. Network Snooping Tools
        1. netstat
        2. vmstat
        3. sar
      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
        1. NT Pros and Cons
        2. Unix Pros and Cons
      16. The Exokernel
      17. Key Recommendations
    8. 18. Server Software
      1. The Evolution of Web Servers
        1. Servers Spawned from inetd
        2. Forking Servers
        3. Threaded Servers
        4. Keepalive Servers
      2. System Calls Made by a Web Server
      3. How Servers Fail
        1. Memory Leaks
      4. Configuring Apache and Netscape Web Servers
        1. Configuring Apache
          1. AllowOverride
          2. BUFFERED_LOGS
          3. MaxClients
          4. Persistent connections
          5. Turning off reverse DNS
          6. Do not restrict by domain
          7. Set FollowSymLinks
          8. FancyIndexing
          9. Use specific index files
          10. MaxRequestsPerChild
          11. Some notes on sizing Apache
          12. Using mod_status
          13. For more information
        2. Configuring Netscape
          1. Number of processes
          2. Number of server threads
          3. Turning off reverse DNS
          4. Persistent connections
          5. File cache
          6. pwfile
          7. CGI timeout
          8. RqThrottle
          9. Disable extraneous features
          10. Using perfdump
          11. For more information
      5. Other Servers
        1. Boa
        2. IIS
        3. Java Web Server
        4. Jigsaw
        5. NCSA
        6. Zeus
      6. Missing Features
      7. Proxy Servers
      8. Hierarchical Caches
      9. Key Recommendations
    9. 19. Content
      1. Size Matters
      2. As Good As It Gets
      3. Caching and Differences
      4. HTML and Compression
        1. gzip
      5. Performance Tips for HTML Authors
        1. Make It Easy on the Server
        2. Make It Easy on the Network
        3. Make It Easy on the Browser
        4. Make It Easy on the User
        5. Watch Out for Composition Tools with a Bias
        6. Keep Up with the State of the Art
        7. Use an HTML Validator
      6. The Document Object Model
      7. Graphics
        1. Weight Watching
        2. Consolidation
        3. Reuse
        4. Psychology
        5. Formats
      8. Audio
      9. Video
      10. Key Recommendations
    10. 20. Custom Applications
      1. Programmers
      2. CGI Programs
      3. CGI Internals and Performance Problems
      4. General CGI Tips
        1. Infinite Loops
          1. How to find and kill infinitely looping CGIs
          2. Runaways
          3. Guarding against infinitely looping CGIs
        2. Don’t Keep the Customer Waiting
        3. Push State or Processing into the Browser
        4. Cookies
        5. Java
        6. Preprocess Queries and Cache the Results
        7. Small Is Beautiful
        8. Scaling Issues
        9. Break Up Long Forms into Several Small Forms
        10. Server DNS Lookup
        11. Debug and Optimize
      5. CGI Language-Specific Optimization Tips
        1. Shell Scripts
        2. Perl
        3. C
      6. Daemonize It
      7. CGI Database Access Performance
      8. Logging
      9. NSAPI and ISAPI
      10. DOM
      11. JSP, ASP, PHP
      12. Key Recommendations
    11. 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
        1. Array Bounds Checking
        2. Blocking Network I/O
        3. Bytecode Interpretation
        4. Bytecode Verification
        5. Dynamic Method Binding
        6. Garbage Collection
        7. Indirections
        8. i18n & l10n
        9. OO
        10. Stack-based
        11. Synchronization
        12. Threading
      4. Coding Tips
        1. Use Good Algorithms
        2. Keep Short Inheritance Chains
        3. Use Stack Variables
        4. Merge Classes
        5. Use Java Libraries
        6. Do Not Poll
        7. Finalize Methods
        8. Create Fewer Objects
        9. Beware of Object Leaks
        10. Consider Not Using Accessor Methods
        11. Use Compound Operators
        12. Use Int Increments
        13. Be Conscious of Access Speed for Different Variables
        14. Local Variables are Faster than Class Variables
        15. Class Variables are Faster than Array Accesses
        16. Use Faster Types as Loop Indexes
        17. Use Native Methods
        18. Use Network Timeouts
        19. Buffer Network and File I/O
        20. Use Sockets Rather than URLs
        21. Use UDP
        22. Use Threads
        23. Use notify
        24. Use Synchronization Sparingly
        25. Keep Synchronized Methods Out of Loops
        26. Watch Out for the Mother Thread
        27. Counting Down May Be Faster than Counting Up
        28. Reduce the Number of Strings
        29. Use String Buffers or Arrays
        30. Watch Out for Slow Fonts
        31. Keep the Paint Method Small
        32. Double Buffer Where Possible for Smoother Graphics
        33. Use the Runtime to Do Error Checking for You
        34. Avoid Time Conversions
        35. Be Wary of RMI, EJBs, and CORBA
      5. Compilers
        1. -O
      6. Profile Your Code
        1. JVMPI
      7. Decompilers
      8. OS-Level Profiling Tools
      9. JITs
      10. Static Compilers
      11. Virtual Machines
      12. Runtime Options
        1. -verbosegc
        2. -noverify
        3. -Xmsn and -Xmxn
        4. Make Eden Big Enough
        5. -train
        6. Use Native Threads
        7. Use .jar Files
        8. Java Plug-In
        9. -start_ java
      13. Java Chips
      14. Java Benchmarks
        1. Problems with Benchmarks
      15. Web Sites with Java Performance Info
      16. Key Recommendations
    12. 22. Databases
      1. Do You Really Need a Relational Database?
        1. When You Need a Professional Database
        2. Alternatives
      2. Performance Tips
        1. Prepared Statements and Bind Variables
        2. Denormalize Tables
        3. Do Not Create Cursors in Loops
        4. Direct Connections
        5. Main Memory Databases
        6. Multiple Tiers
        7. Connection Pool Configuration
        8. Queries
        9. Indexes
        10. Row-Level Locking
        11. Combined Web Server/Databases
      3. How Many Connections Can Your Database Handle?
      4. When the Database Is Overloaded
      5. Analysis
      6. Key Recommendations
  5. A. Web Performance Product Lists and Reviews
    1. Problems with Commercial Tools
    2. Monitoring Tools
    3. Load Generation Tools
    4. Preloaders
    5. Network Optimizers
      1. MTU Tuners
      2. Optimal Application Expert
    6. IP Traffic Management Products
    7. Content Compressors
      1. Condenser
      2. T/X 2100 Series from Redline Networks
    8. Hybrid Development Tools/Databases
    9. Java Profilers and Optimizers
    10. Caching Services
    11. Professional Services
    12. Load Balancers
    13. Modeling Tools
  6. Index
  7. About the Author
  8. Colophon
  9. Copyright

Product information

  • Title: Web Performance Tuning, 2nd Edition
  • Author(s): Patrick Killelea
  • Release date: March 2002
  • Publisher(s): O'Reilly Media, Inc.
  • ISBN: 9781491950692