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…mehr
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.Hinweis: Dieser Artikel kann nur an eine deutsche Lieferadresse ausgeliefert werden.
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.
Inhaltsangabe
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 for the Second Edition Preliminary Considerations Chapter 1: The Quick and the Dead 1.1 Questions for the Browser Side 1.2 Questions for the Server Side 1.3 Key Recommendations Chapter 2: Web Site Architecture 2.1 Trade-offs 2.2 Elements 2.3 Example Web Site Architectures 2.4 Trends 2.5 Sample Configurations 2.6 Key Recommendations Chapter 3: Capacity Planning 3.1 Do the Math . . . 3.2 . . . But Trust Your Eyes More than the Math 3.3 Questions to Ask 3.4 How Much Bandwidth Do You Need? 3.5 How Fast a Server Do You Need? 3.6 How Much Memory Do You Need? 3.7 Key Recommendations Chapter 4: Performance Monitoring 4.1 Parameters of Performance 4.2 Latency and Throughput 4.3 Utilization 4.4 Efficiency 4.5 Monitoring Web Performance Using Perl 4.6 Automatically Generating Monitoring Scripts Using Sprocket 4.7 Using a Relational Database to Store and Retrieve Your Monitoring Data 4.8 Monitoring Machine Utilization with rstat 4.9 Monitoring Per-Process Statistics 4.10 Generating Graphs from ps Data 4.11 Monitoring Other Things 4.12 Making a System Dashboard Web Page 4.13 Key Recommendations Chapter 5: Load Testing 5.1 Load Test Preparation 5.2 Trade-offs with Load Testing Tools 5.3 Writing Your Own Load Testing Tools 5.4 Benchmark Specifications and Benchmark Tests 5.5 Other Resources 5.6 Key Recommendations Chapter 6: Performance Analysis 6.1 Using analysis.cgi to Find a Bottleneck 6.2 Snooping HTTP with Sprocket 6.3 Look at Connections 6.4 Log File Analysis 6.5 Hits per Second 6.6 A Few More Tips 6.7 Key Recommendations Chapter 7: Reliability 7.1 Typical Failures 7.2 Dependencies 7.3 Smoothing Outages 7.4 Key Recommendations Chapter 8: Security 8.1 HTTPS and SSL 8.2 Firewalls 8.3 Bastion Hosts 8.4 chroot 8.5 Key Recomendation Chapter 9: Case Studies 9.1 Database Table Growing Without Limit 9.2 Reverse DNS Lookups Slows Logging 9.3 Kinked Cable 9.4 Database Connection Pool Growth Limits Performance 9.5 Key Recommendation Chapter 10: Principles and Patterns 10.1 Principles of Performance Tuning 10.2 Patterns of Performance Improvement 10.3 Key Recommendations Tuning in Depth Chapter 11: Browsers 11.1 How Browsers Work 11.2 Types of Browsers 11.3 The Perfect Browser 11.4 Browser Speed 11.5 Browser Tuning Tips 11.6 Non-Browser Web Clients 11.7 Key Recommendations Chapter 12: Client Operating System 12.1 Microsoft Windows 12.2 Macintosh 12.3 Unix 12.4 Key Recommendations Chapter 13: Client Hardware 13.1 CPU 13.2 RAM 13.3 Cache 13.4 Bus 13.5 Disk 13.6 Video 13.7 BIOS 13.8 Key Recommendations Chapter 14: Lines and Terminators 14.1 Forwarding and Latency 14.2 Your Modem, the Information Driveway 14.3 ISDN 14.4 Cable Modems 14.5 xDSL 14.6 Higher Capacity Lines 14.7 Intranets 14.8 Network Modeling Tools 14.9 The Internet 14.10 PTTs 14.11 Key Recommendations Chapter 15: Network Protocols 15.1 Power and Protocols 15.2 Factors Affecting Network Protocol Performance 15.3 The Protocols of the Web 15.4 Key Recommendations Chapter 16: Server Hardware 16.1 Box on a Wire 16.2 Good I/O 16.3 Multiple Busses 16.4 Fast Disks 16.5 Lots of Memory 16.6 Scalability 16.7 Network Interface Card 16.8 Bus 16.9 Memory 16.10 RAM Characteristics 16.11 CPU 16.12 Symmetric Multiprocessing (SMP) 16.13 Disk Activity and PID 16.14 Key Recommendations Chapter 17: Server Operating System 17.1 Unix and the Origin of the Web 17.2 Unix Flavors 17.3 System Calls Versus Library Calls 17.4 Processes and the Kernel 17.5 The Filesystem 17.6 The Windowing System 17.7 Versions and Patches 17.8 Configurable OS Parameters 17.9 Unix OS Monitoring Tools 17.10 System Call Tracers 17.11 Network Snooping Tools 17.12 How Many Connections Can My Server Handle? 17.13 How Many Processes Can My Server Handle? 17.14 How Quickly Can My Server Fork New Processes? 17.15 Unix Versus NT as the Web Server OS 17.16 The Exokernel 17.17 Key Recommendations Chapter 18: Server Software 18.1 The Evolution of Web Servers 18.2 System Calls Made by a Web Server 18.3 How Servers Fail 18.4 Configuring Apache and Netscape Web Servers 18.5 Other Servers 18.6 Missing Features 18.7 Proxy Servers 18.8 Hierarchical Caches 18.9 Key Recommendations Chapter 19: Content 19.1 Size Matters 19.2 As Good As It Gets 19.3 Caching and Differences 19.4 HTML and Compression 19.5 Performance Tips for HTML Authors 19.6 The Document Object Model 19.7 Graphics 19.8 Audio 19.9 Video 19.10 Key Recommendations Chapter 20: Custom Applications 20.1 Programmers 20.2 CGI Programs 20.3 CGI Internals and Performance Problems 20.4 General CGI Tips 20.5 CGI Language-Specific Optimization Tips 20.6 Daemonize It 20.7 CGI Database Access Performance 20.8 Logging 20.9 NSAPI and ISAPI 20.10 DOM 20.11 JSP, ASP, PHP 20.12 Key Recommendations Chapter 21: Java 21.1 Java Will Never Be Good Enough for GUI Applications 21.2 Java Is Good Enough for the Server Side 21.3 Performance Problems Intrinsic to Java 21.4 Coding Tips 21.5 Compilers 21.6 Profile Your Code 21.7 Decompilers 21.8 OS-Level Profiling Tools 21.9 JITs 21.10 Static Compilers 21.11 Virtual Machines 21.12 Runtime Options 21.13 Java Chips 21.14 Java Benchmarks 21.15 Web Sites with Java Performance Info 21.16 Key Recommendations Chapter 22: Databases 22.1 Do You Really Need a Relational Database? 22.2 Performance Tips 22.3 How Many Connections Can Your Database Handle? 22.4 When the Database Is Overloaded 22.5 Analysis 22.6 Key Recommendations Web Performance Product Lists and Reviews Problems with Commercial Tools Monitoring Tools Load Generation Tools Preloaders Network Optimizers IP Traffic Management Products Content Compressors Hybrid Development Tools/Databases Java Profilers and Optimizers Caching Services Professional Services Load Balancers Modeling Tools Colophon
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 for the Second Edition Preliminary Considerations Chapter 1: The Quick and the Dead 1.1 Questions for the Browser Side 1.2 Questions for the Server Side 1.3 Key Recommendations Chapter 2: Web Site Architecture 2.1 Trade-offs 2.2 Elements 2.3 Example Web Site Architectures 2.4 Trends 2.5 Sample Configurations 2.6 Key Recommendations Chapter 3: Capacity Planning 3.1 Do the Math . . . 3.2 . . . But Trust Your Eyes More than the Math 3.3 Questions to Ask 3.4 How Much Bandwidth Do You Need? 3.5 How Fast a Server Do You Need? 3.6 How Much Memory Do You Need? 3.7 Key Recommendations Chapter 4: Performance Monitoring 4.1 Parameters of Performance 4.2 Latency and Throughput 4.3 Utilization 4.4 Efficiency 4.5 Monitoring Web Performance Using Perl 4.6 Automatically Generating Monitoring Scripts Using Sprocket 4.7 Using a Relational Database to Store and Retrieve Your Monitoring Data 4.8 Monitoring Machine Utilization with rstat 4.9 Monitoring Per-Process Statistics 4.10 Generating Graphs from ps Data 4.11 Monitoring Other Things 4.12 Making a System Dashboard Web Page 4.13 Key Recommendations Chapter 5: Load Testing 5.1 Load Test Preparation 5.2 Trade-offs with Load Testing Tools 5.3 Writing Your Own Load Testing Tools 5.4 Benchmark Specifications and Benchmark Tests 5.5 Other Resources 5.6 Key Recommendations Chapter 6: Performance Analysis 6.1 Using analysis.cgi to Find a Bottleneck 6.2 Snooping HTTP with Sprocket 6.3 Look at Connections 6.4 Log File Analysis 6.5 Hits per Second 6.6 A Few More Tips 6.7 Key Recommendations Chapter 7: Reliability 7.1 Typical Failures 7.2 Dependencies 7.3 Smoothing Outages 7.4 Key Recommendations Chapter 8: Security 8.1 HTTPS and SSL 8.2 Firewalls 8.3 Bastion Hosts 8.4 chroot 8.5 Key Recomendation Chapter 9: Case Studies 9.1 Database Table Growing Without Limit 9.2 Reverse DNS Lookups Slows Logging 9.3 Kinked Cable 9.4 Database Connection Pool Growth Limits Performance 9.5 Key Recommendation Chapter 10: Principles and Patterns 10.1 Principles of Performance Tuning 10.2 Patterns of Performance Improvement 10.3 Key Recommendations Tuning in Depth Chapter 11: Browsers 11.1 How Browsers Work 11.2 Types of Browsers 11.3 The Perfect Browser 11.4 Browser Speed 11.5 Browser Tuning Tips 11.6 Non-Browser Web Clients 11.7 Key Recommendations Chapter 12: Client Operating System 12.1 Microsoft Windows 12.2 Macintosh 12.3 Unix 12.4 Key Recommendations Chapter 13: Client Hardware 13.1 CPU 13.2 RAM 13.3 Cache 13.4 Bus 13.5 Disk 13.6 Video 13.7 BIOS 13.8 Key Recommendations Chapter 14: Lines and Terminators 14.1 Forwarding and Latency 14.2 Your Modem, the Information Driveway 14.3 ISDN 14.4 Cable Modems 14.5 xDSL 14.6 Higher Capacity Lines 14.7 Intranets 14.8 Network Modeling Tools 14.9 The Internet 14.10 PTTs 14.11 Key Recommendations Chapter 15: Network Protocols 15.1 Power and Protocols 15.2 Factors Affecting Network Protocol Performance 15.3 The Protocols of the Web 15.4 Key Recommendations Chapter 16: Server Hardware 16.1 Box on a Wire 16.2 Good I/O 16.3 Multiple Busses 16.4 Fast Disks 16.5 Lots of Memory 16.6 Scalability 16.7 Network Interface Card 16.8 Bus 16.9 Memory 16.10 RAM Characteristics 16.11 CPU 16.12 Symmetric Multiprocessing (SMP) 16.13 Disk Activity and PID 16.14 Key Recommendations Chapter 17: Server Operating System 17.1 Unix and the Origin of the Web 17.2 Unix Flavors 17.3 System Calls Versus Library Calls 17.4 Processes and the Kernel 17.5 The Filesystem 17.6 The Windowing System 17.7 Versions and Patches 17.8 Configurable OS Parameters 17.9 Unix OS Monitoring Tools 17.10 System Call Tracers 17.11 Network Snooping Tools 17.12 How Many Connections Can My Server Handle? 17.13 How Many Processes Can My Server Handle? 17.14 How Quickly Can My Server Fork New Processes? 17.15 Unix Versus NT as the Web Server OS 17.16 The Exokernel 17.17 Key Recommendations Chapter 18: Server Software 18.1 The Evolution of Web Servers 18.2 System Calls Made by a Web Server 18.3 How Servers Fail 18.4 Configuring Apache and Netscape Web Servers 18.5 Other Servers 18.6 Missing Features 18.7 Proxy Servers 18.8 Hierarchical Caches 18.9 Key Recommendations Chapter 19: Content 19.1 Size Matters 19.2 As Good As It Gets 19.3 Caching and Differences 19.4 HTML and Compression 19.5 Performance Tips for HTML Authors 19.6 The Document Object Model 19.7 Graphics 19.8 Audio 19.9 Video 19.10 Key Recommendations Chapter 20: Custom Applications 20.1 Programmers 20.2 CGI Programs 20.3 CGI Internals and Performance Problems 20.4 General CGI Tips 20.5 CGI Language-Specific Optimization Tips 20.6 Daemonize It 20.7 CGI Database Access Performance 20.8 Logging 20.9 NSAPI and ISAPI 20.10 DOM 20.11 JSP, ASP, PHP 20.12 Key Recommendations Chapter 21: Java 21.1 Java Will Never Be Good Enough for GUI Applications 21.2 Java Is Good Enough for the Server Side 21.3 Performance Problems Intrinsic to Java 21.4 Coding Tips 21.5 Compilers 21.6 Profile Your Code 21.7 Decompilers 21.8 OS-Level Profiling Tools 21.9 JITs 21.10 Static Compilers 21.11 Virtual Machines 21.12 Runtime Options 21.13 Java Chips 21.14 Java Benchmarks 21.15 Web Sites with Java Performance Info 21.16 Key Recommendations Chapter 22: Databases 22.1 Do You Really Need a Relational Database? 22.2 Performance Tips 22.3 How Many Connections Can Your Database Handle? 22.4 When the Database Is Overloaded 22.5 Analysis 22.6 Key Recommendations Web Performance Product Lists and Reviews Problems with Commercial Tools Monitoring Tools Load Generation Tools Preloaders Network Optimizers IP Traffic Management Products Content Compressors Hybrid Development Tools/Databases Java Profilers and Optimizers Caching Services Professional Services Load Balancers Modeling Tools Colophon
Es gelten unsere Allgemeinen Geschäftsbedingungen: www.buecher.de/agb
Impressum
www.buecher.de ist ein Internetauftritt der buecher.de internetstores GmbH
Geschäftsführung: Monica Sawhney | Roland Kölbl | Günter Hilger
Sitz der Gesellschaft: Batheyer Straße 115 - 117, 58099 Hagen
Postanschrift: Bürgermeister-Wegele-Str. 12, 86167 Augsburg
Amtsgericht Hagen HRB 13257
Steuernummer: 321/5800/1497
USt-IdNr: DE450055826