Web Performance Tuning

個数:

Web Performance Tuning

  • 提携先の海外書籍取次会社に在庫がございます。通常2週間で発送いたします。
    重要ご説明事項
    1. 納期遅延や、ご入手不能となる場合が若干ございます。
    2. 複数冊ご注文の場合、分割発送となる場合がございます。
    3. 美品のご指定は承りかねます。
  • 製本 Paperback:紙装版/ペーパーバック版
  • 言語 ENG,ENG
  • 商品コード 9780596001728
  • DDC分類 004.678

Full 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. This text is about getting the best possible performance from the Web: streamlining Web content, getting optimal performance from a browser, tuning both client and server hardware, and maximizing the capacity of the network itself. It offers 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.Topics covered include: Web site architecture, security, reliability, and their impact on performance; discussion of scalability of Java on multi-processor servers; Perl scripts for writing Web performance spiders that handle logins, cookies, SSL, and more; instructions on how to use Perl DBI and the open source program gunplot to generate performance graphs on the fly; and 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.

Table of Contents

Preface                                            xi
Part I. Preliminary Considerations
The Quick and the Dead 3 (16)
Questions for the Browser Side 3 (8)
Questions for the Server Side 11 (7)
Key Recommendations 18 (1)
Web Site Architecture 19 (16)
Trade-offs 19 (5)
Elements 24 (4)
Example Web Site Architectures 28 (3)
Trends 31 (1)
Sample Configurations 32 (2)
Key Recommendations 34 (1)
Capacity Planning 35 (18)
Do the Math... 35 (1)
...But Trust Your Eyes More than the Math 36 (1)
Questions to Ask 37 (8)
How Much Bandwidth Do You Need? 45 (3)
How Fast a Server Do You Need? 48 (2)
How Much Memory Do You Need? 50 (2)
Key Recommendations 52 (1)
Performance Monitoring 53 (47)
Parameters of Performance 53 (1)
Latency and Throughput 53 (6)
Utilization 59 (1)
Efficiency 59 (4)
Monitoring Web Performance Using Perl 63 (6)
Automatically Generating Monitoring Scripts 69 (6)
Using Sprocket
Using a Relational Database to Store and 75 (1)
Retrieve Your Monitoring Data
Monitoring Machine Utilization with rstat 76 (8)
Monitoring Per-Process Statistics 84 (3)
Generating Graphs from ps Data 87 (3)
Monitoring Other Things 90 (6)
Making a System Dashboard Web Page 96 (3)
Key Recommendations 99 (1)
Load Testing 100(16)
Load Test Preparation 100(2)
Trade-offs with Load Testing Tools 102(1)
Writing Your Own Load Testing Tools 102(8)
Benchmark Specifications and Benchmark Tests 110(4)
Other Resources 114(1)
Key Recommendations 115(1)
Performance Analysis 116(17)
Using analysis.cgi to Find a Bottleneck 116(2)
Snooping HTTP with Sprocket 118(2)
Look at Connections 120(1)
Log File Analysis 120(5)
Hits per Second 125(6)
A Few More Tips 131(1)
Key Recommendations 132(1)
Reliability 133(10)
Typical Failures 133(8)
Dependencies 141(1)
Smoothing Outages 142(1)
Key Recommendations 142(1)
Security 143(5)
HTTPS and SSL 143(3)
Firewalls 146(1)
Bastion Hosts 147(1)
chroot 147(1)
Key Recomendation 147(1)
Case Studies 148(8)
Database Table Growing Without Limit 148(1)
Reverse DNS Lookups Slows Logging 148(3)
Kinked Cable 151(2)
Database Connection Pool Growth Limits 153(2)
Performance
Key Recommendation 155(1)
Principles and Patterns 156(15)
Principles of Performance Tuning 156(9)
Patterns of Performance Improvement 165(2)
Key Recommendations 167(4)
Part II. Tuning in Depth
Browsers 171(17)
How Browsers Work 171(4)
Types of Browsers 175(4)
The Perfect Browser 179(1)
Browser Speed 179(1)
Browser Tuning Tips 180(5)
Non-Browser Web Clients 185(2)
Key Recommendations 187(1)
Client Operating System 188(7)
Microsoft Windows 188(3)
Macintosh 191(2)
Unix 193(1)
Key Recommendations 194(1)
Client Hardware 195(10)
CPU 195(2)
RAM 197(1)
Cache 198(1)
Bus 198(1)
Disk 199(1)
Video 200(2)
BIOS 202(2)
Key Recommendations 204(1)
Lines and Terminators 205(28)
Forwarding and Latency 205(1)
Your Modem, the Information Driveway 206(5)
ISDN 211(1)
Cable Modems 212(1)
xDSL 213(1)
Higher Capacity Lines 213(2)
Intranets 215(8)
Network Modeling Tools 223(1)
The Internet 223(8)
PTTs 231(1)
Key Recommendations 232(1)
Network Protocols 233(31)
Power and Protocols 233(2)
Factors Affecting Network Protocol 235(1)
Performance
The Protocols of the Web 236(27)
Key Recommendations 263(1)
Server Hardware 264(27)
Box on a Wire 264(1)
Good I/O 265(1)
Multiple Busses 265(1)
Fast Disks 265(1)
Lots of Memory 265(1)
Scalability 266(1)
Network Interface Card 266(1)
Bus 267(1)
Memory 268(1)
RAM Characteristics 268(1)
CPU 269(3)
Symmetric Multiprocessing (SMP) 272(18)
Disk Activity and PID 290(1)
Key Recommendations 290(1)
Server Operating System 291(38)
Unix and the Origin of the Web 291(1)
Unix Flavors 292(3)
System Calls Versus Library Calls 295(1)
Processes and the Kernel 295(9)
The Filesystem 304(7)
The Windowing System 311(1)
Versions and Patches 312(1)
Configurable OS Parameters 312(4)
Unix OS Monitoring Tools 316(4)
System Call Tracers 320(1)
Network Snooping Tools 321(2)
How Many Connections Can My Server Handle? 323(1)
How Many Processes Can My Server Handle? 324(1)
How Quickly' Can My Server Fork New 325(1)
Processes?
Unix Versus NT as the Web Server OS 326(2)
The Exokernel 328(1)
Key Recommendations 328(1)
Server Software 329(18)
The Evolution of Web Servers 329(2)
System Calls Made by a Web Server 331(2)
How Servers Fail 333(1)
Configuring Apache and Netscape Web Servers 334(9)
Other Servers 343(2)
Missing Features 345(1)
Proxy Servers 345(1)
Hierarchical Caches 346(1)
Key Recommendations 346(1)
Content 347(12)
Size Matters 347(1)
As Good As It Gets 348(1)
Caching and Differences 348(1)
HTML and Compression 348(2)
Performance Tips for HTML Authors 350(4)
The Document Object Model 354(1)
Graphics 354(2)
Audio 356(1)
Video 357(1)
Key Recommendations 358(1)
Custom Applications 359(19)
Programmers 359(1)
CGI Programs 359(1)
CGI Internals and Performance Problems 360(1)
General CGI Tips 361(10)
CGI Language-Specific Optimization Tips 371(4)
Daemonize It 375(1)
CGI Database Access Performance 376(1)
Logging 376(1)
NSAPI and ISAPI 377(1)
DOM 377(1)
JSP, ASP, PHP 377(1)
Key Recommendations 377(1)
Java 378(26)
Java Will Never Be Good Enough for GUI 378(1)
Applications
Java Is Good Enough for the Server Side 378(1)
Performance Problems Intrinsic to Java 379(4)
Coding Tips 383(12)
Compilers 395(1)
Profile Your Code 396(1)
Decompilers 397(1)
OS-Level Profiling Tools 397(1)
JITs 397(1)
Static Compilers 398(1)
Virtual Machines 399(1)
Runtime Options 400(2)
Java Chips 402(1)
Java Benchmarks 402(1)
Web Sites with Java Performance Info 403(1)
Key Recommendations 403(1)
Databases 404(8)
Do You Really Need a Relational Database? 405(1)
Performance Tips 406(3)
How Many Connections Can Your Database 409(1)
Handle?
When the Database Is Overloaded 410(1)
Analysis 411(1)
Key Recommendations 411(1)
Appendix. Web Performance Product Lists and 412(13)
Reviews
Index 425