Synopses & Reviews
For 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 bells and whistles, and consequently longer waits on the Web. Improved performance has become one of the most important factors in determining the usability of both the Web in general and of individual sites in particular.Web Performance Tuning is about getting the best performance from the Web. This book isn't just about tuning the web server software; it's also about getting optimal performance from a browser, tuning the hardware (on both the server and browser ends), 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 takes a breath and pulls back to give a conceptual background of the principles of computing performance. The latter half of the book approaches each element of a web transaction--from client to network to server--to examine the weak links in the chain and how to strengthen them.Tips include:
- Using simultaneous downloads to locate bottlenecks
- Adjusting TCP for better web performance
- Reducing the impact of DNS
- Upgrading device drivers
- Using alternatives to CGI
- Locating the web server strategically
- Minimizing browser cache lookups
- Avoiding symbolic links for web content
Get the best performance from the Web. Aimed at Web administrators, content developers, and users, "Web Performance Tuning" covers general principles of performance, such as network latency and caching. It also gives specific tips on tuning Web browsers, Web servers, operating systems, and hardware for best performance.
About the Author
Patrick Killelea currently works for a major on-line brokerage, but he won't say which one. He spends his days writing monitoring and load testing tools, and proclaiming the web to the be the one true front end because of its simplicity, portability, and performance. He thinks Microsoft is not to be trusted with your back end. Patrick knows there are huge web performance improvements yet to be realized using the details of existing open protocols. He is a fan of T/TCP and hopes one day to set up a connection and deliver an entire web page all in a single packet. Patrick spends his evenings playing with his wife and kids, and is interested in etymologies, obscure religions, and pan-seared salmon with mixed greens and a nice merlot. He likes to get e-mail about web and Java performance issues. Please visit his web site at patrick.net.
Table of Contents
Preface; What Is This Book Good For?; Audience for This Book; Assumptions of This Book; How This Book Is Organized; Font Conventions; How to Contact Us; Web Site Updates and Code Examples; Other Books and Resources; Disclaimer; Acknowledgments; Preliminary Considerations; Chapter 1: The Blunt Instruments; 1.1 Improving Performance from the Browser Side; 1.2 Improving Performance from the Server Side; 1.3 Key Recommendations; Chapter 2: Capacity Planning; 2.1 Capacity Planning Is Preemptive Performance Tuning; 2.2 Methodology; 2.3 Questions to Ask; 2.4 How Much Bandwidth Do You Need?; 2.5 How Fast a Server Do You Need?; 2.6 How Much Memory Do You Need?; 2.7 Architecture Scaling Options; 2.8 Key Recommendations; Chapter 3: Web Performance Measurement; 3.1 Parameters of Performance; 3.2 Benchmark Specifications and Benchmark Tests; 3.3 Web Performance Measuring Tools and Services; 3.4 Key Recommendations; Chapter 4: Case Studies; 4.1 Example Performance Problems, Diagnoses, and Solutions; 4.2 Methodology for Performance Consulting; 4.3 Sample Configurations; 4.4 Key Recommendation; Chapter 5: Principles and Patterns; 5.1 Principles of Performance Tuning; 5.2 Patterns of Performance Improvement; 5.3 Key Recommendations; Tuning in Depth; Chapter 6: Client Software; 6.1 Brief History of the Web Browser; 6.2 How Browsers Work; 6.3 Popular Browsers; 6.4 Browser Speed; 6.5 Browser Tuning Tips; 6.6 Figuring Out Why the Browser Is Hanging; 6.7 Key Recommendations; Chapter 7: Client Operating System; 7.1 Macintosh; 7.2 Microsoft Windows; 7.3 Unix; 7.4 Key Recommendations; Chapter 8: Client Hardware; 8.1 PC Hardware; 8.2 Key Recommendations; Chapter 9: Network Hardware; 9.1 Lines and Terminators; 9.2 Intranets; 9.3 Network Modeling Tools; 9.4 The Internet; 9.5 PTTs; 9.6 Key Recommendations; Chapter 10: Network Protocols; 10.1 Power and Protocols; 10.2 The Protocols of the Web; 10.3 Key Recommendations; Chapter 11: Server Hardware; 11.1 How Server Hardware Is Different; 11.2 Network Interface Card; 11.3 Bus; 11.4 Memory; 11.5 CPU; 11.6 Disk; 11.7 Key Recommendations; Chapter 12: Server Operating System; 12.1 Unix and the Origin of the Web; 12.2 Unix Flavors; 12.3 Processes and the Kernel; 12.4 The Filesystem; 12.5 The Windowing System; 12.6 Versions and Patches; 12.7 Configurable OS Parameters; 12.8 Unix OS Monitoring Tools; 12.9 Unix Versus NT as the Web Server OS; 12.10 Key Recommendations; Chapter 13: Server Software; 13.1 Inside Web Server Software; 13.2 Common Server Parameters; 13.3 Servers; 13.4 Proxy Servers; 13.5 Firewalls; 13.6 Key Recommendations; Chapter 14: Content; 14.1 Size Matters; 14.2 HTML; 14.3 Graphics; 14.4 Audio; 14.5 Video; 14.6 Key Recommendations; Chapter 15: CGI Programs; 15.1 CGI Internals and Performance Problems; 15.2 General CGI Tips; 15.3 CGI Language-Specific Optimization Tips; 15.4 Daemonize It; 15.5 CGI Database Access Performance; 15.6 Key Recommendations; Chapter 16: Java; 16.1 What Java Does for You; 16.2 Java Compared to Native Code; 16.3 Why It's Getting Better; 16.4 Performance Tips: What You Can Do; 16.5 Key Recommendations; Chapter 17: Databases; 17.1 Do You Really Need a Relational Database?; 17.2 Performance Tips; 17.3 Key Recommendations; Appendixes; Netscape Enterprise Server 3.0 Tuning; Introduction; Audience; What Is perfdump?; Installing perfdump; Using perfdump Statistics; Platform-Specific Issues; Benchmarking the Netscape Enterprise Server; Apache Performance Notes; Introduction; Hardware and Operating System Issues; Runtime Configuration Issues; Negotiation; Process Creation; Compile-Time Configuration Issues; Detailed Analysis of a Trace; The Preforking Model; Solaris 2.x--Tuning Your TCP/IP Stack and More; Please Share Your Knowledge; History and Introduction; TCP Connection Initiation; Retransmission-Related Parameters; Path MTU Discovery; Further Advice, Hints, and Remarks; Windows, Buffers, and Watermarks; Tuning Your System; Recommended Patches; Related Books and Software; Colophon;