Web Performance Tuning: Speeding Up the Web

Front Cover
"O'Reilly Media, Inc.", 2002 - Computers - 456 pages
3 Reviews
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.
  

What people are saying - Write a review

User Review - Flag as inappropriate

Published in 1998, this book is one of the best for web performance testing, covering the technical basics for everything you need to know in order to really understand the subject. It includes such required information as definitions of various performance metrics, and what those should be in the real world, and moves along through networks, hardware, and operating systems. It goes to great pains to cover a variety of systems, including Windows, Linux, Macintosh, and a variety of web servers. Although the information is dated by now, I consider this a classic reference for every engineers library.
Michael Czeiszperger
Load Testing by Web Performance
http://www.webperformance.com
 

Contents

The Quick and the Dead
3
Questions for the Server Side
11
Key Recommendations
18
Web Site Architecture
19
Elements
24
Example Web Site Architectures
28
Trends
31
Sample Configurations
32
xDSL
213
Intranets
215
Network Modeling Tools
223
PTTs
231
Key Recommendations
232
Network Protocols Power and Protocols
233
Factors Affecting Network Protocol Performance
235
The Protocols of the Web
236

Key Recommendations
34
Capacity Planning
35
But Trust Your Eyes More than the Math
36
Questions to Ask
37
How Much Bandwidth Do You Need?
45
How Fast a Server Do You Need?
48
How Much Memory Do You Need?
50
Key Recommendations
52
Performance Monitoring
53
Utilization
59
Monitoring Web Performance Using Perl
63
Automatically Generating Monitoring Scripts Using Sprocket
69
Using a Relational Database to Store and Retrieve Your Monitoring Data
75
Monitoring Machine Utilization with rstat
76
Monitoring PerProcess Statistics
84
Generating Graphs from ps Data
87
Monitoring Other Things
90
Making a System Dashboard Web Page
96
Key Recommendations
99
Load Testing
100
Tradeoffs with Load Testing Tools
102
Benchmark Specifications and Benchmark Tests
110
Other Resources
114
Key Recommendations
115
Performance Analysis
116
Snooping HTTP with Sprocket
118
Look at Connections
120
Hits per Second
125
What Happens if the Database Is Hung?
131
Key Recommendations
132
Reliability
133
Dependencies
141
Smoothing Outages
142
Security
143
Firewalls
146
Bastion Hosts
147
Case Studies
148
Kinked Cable
151
Database Connection Pool Growth Limits Performance
153
Key Recommendation
155
Principles and Patterns
156
Patterns of Performance Improvement
165
Key Recommendations
167
I
169
Browsers
171
Types of Browsers
175
The Perfect Browser
179
Browser Tuning Tips
180
NonBrowser Web Clients
185
Key Recommendations
187
Client Operating System
188
Macintosh
191
Unix
193
Key Recommendations
194
Client Hardware
195
RAM
197
Cache
198
Disk
199
Video
200
BIOS
202
Key Recommendations
204
Lines and Terminators
205
Your Modem the Information Driveway
206
ISDN
211
Cable Modems
212
Key Recommendations
263
Server Hardware
264
Good IO
265
Scalability
266
Bus
267
Memory
268
CPU
269
Symmetric Multiprocessing SMP
272
Key Recommendations
290
Server Operating System
291
Unix Flavors
292
System Calls Versus Library Calls
295
The Filesystem
304
The Windowing System
311
Versions and Patches
312
Unix OS Monitoring Tools
316
System Call Tracers
320
Network Snooping Tools
321
How Many Connections Can My Server Handle?
323
How Many Processes Can My Server Handle?
324
How Quickly Can My Server Fork New Processes?
325
Unix Versus NT as the Web Server OS
326
The Exokernel
328
Server Software
329
System Calls Made by a Web Server
331
How Servers Fail
333
Configuring Apache and Netscape Web Servers
334
Other Servers
343
Missing Features
345
Hierarchical Caches
346
Content
347
As Good As It Gets
348
Performance Tips for HTML Authors
350
The Document Object Model
354
Audio
356
Video
357
Key Recommendations
358
Custom Applications
359
CGI Internals and Performance Problems
360
General CGI Tips
361
CGI LanguageSpecific Optimization Tips
371
Daemonize It
375
CGI Database Access Performance
376
NSAPI and ISAPI
377
Java
378
Performance Problems Intrinsic to Java
379
Coding Tips
383
Compilers
395
Profile Your Code
396
Decompilers
397
Static Compilers
398
Virtual Machines
399
Runtime Options
400
Java Chips
402
Web Sites with Java Performance Info
403
II
404
III
405
IV
406
V
409
VI
410
VII
411
IX
412
X
425
Copyright

Common terms and phrases

References to this book

All Book Search results »

About the author (2002)

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.