Book description
The first comprehensive, expert guide for end-to-end Linux application optimization
Learn to choose the right tools—and use them together to solve real problems in real production environments
Superior application performance is more crucial than ever—and in today's complex production environments, it's tougher to ensure, too. If you use Linux, you have extraordinary advantages: complete source code access, plus an exceptional array of optimization tools. But the tools are scattered across the Internet. Many are poorly documented. And few experts know how to use them together to solve real problems. Now, one of those experts has written the definitive Linux tuning primer for every professional: Optimizing Linux® Performance.
Renowned Linux benchmarking specialist Phillip Ezolt introduces each of today's most important Linux optimization tools, showing how they fit into a proven methodology for perfecting overall application performance. Using realistic examples, Ezolt shows developers how to pinpoint exact lines of source code that are impacting performance. He teaches sysadmins and application developers how to rapidly drill down to specific bottlenecks, so they can implement solutions more quickly. You'll discover how to:
Identify bottlenecks even if you're not familiar with the underlying system
Find and choose the right performance tools for any problem
Recognize the meaning of the events you're measuring
Optimize system CPU, user CPU, memory, network I/O, and disk I/O—and understand their interrelationships
Fix CPU-bound, latency-sensitive, and I/O-bound applications, through case studies you can easily adapt to your own environment
Install and use oprofile, the advanced systemwide profiler for Linux systems
If you're new to tuning, Ezolt gives you a clear and practical introduction to all the principles and strategies you'll need. If you're migrating to Linux, you'll quickly master Linux equivalents to the tools and techniques you already know. Whatever your background or environment, this book can help you improve the performance of all your Linux applications—increasingbusiness value and user satisfaction at the same time.
© Copyright Pearson Education. All rights reserved.
Table of contents
- Copyright
- Hewlett-Packard® Professional Books
- Preface
- Acknowledgments
- About the Author
-
1. Performance Hunting Tips
- 1.1. General Tips
- 1.2. Outline of a Performance Investigation
- 1.3. Chapter Summary
-
2. Performance Tools: System CPU
- 2.1. CPU Performance Statistics
- 2.2. Linux Performance Tools: CPU
- 2.3. Chapter Summary
- 3. Performance Tools: System Memory
- 4. Performance Tools: Process-Specific CPU
- 5. Performance Tools: Process-Specific Memory
- 6. Performance Tools: Disk I/O
- 7. Performance Tools: Network
- 8. Utility Tools: Performance Tool Helpers
-
9. Using Performance Tools to Find Problems
- 9.1. Not Always a Silver Bullet
- 9.2. Starting the Hunt
- 9.3. Optimizing an Application
-
9.4. Optimizing a System
- 9.4.1. Is the System CPU-Bound?
- 9.4.2. Is a Single Processor CPU-Bound?
- 9.4.3. Are One or More Processes Using Most of the System CPU?
- 9.4.4. Are One or More Processes Using Most of an Individual CPU?
- 9.4.5. Is the Kernel Servicing Many Interrupts?
- 9.4.6. Where Is Time Spent in the Kernel?
- 9.4.7. Is the Amount of Swap Space Being Used Increasing?
- 9.4.8. Is the System I/O-Bound?
- 9.4.9. Is the System Using Disk I/O?
- 9.4.10. Is the System Using Network I/O?
-
9.5. Optimizing Process CPU Usage
- 9.5.1. Is the Process Spending Time in User or Kernel Space?
- 9.5.2. Which System Calls Is the Process Making, and How Long Do They Take to Complete?
- 9.5.3. In Which Functions Does the Process Spend Time?
- 9.5.4. What Is the Call Tree to the Hot Functions?
- 9.5.5. Do Cache Misses Correspond to the Hot Functions or Source Lines?
-
9.6. Optimizing Memory Usage
- 9.6.1. Is the Kernel Memory Usage Increasing?
- 9.6.2. What Type of Memory Is the Kernel Using?
- 9.6.3. Is a Particular Process’s Resident Set Size Increasing?
- 9.6.4. Is Shared Memory Usage Increasing?
- 9.6.5. Which Processes Are Using the Shared Memory?
- 9.6.6. What Type of Memory Is the Process Using?
- 9.6.7. What Functions Are Using All of the Stack?
- 9.6.8. What Functions Have the Biggest Text Size?
- 9.6.9. How Big Are the Libraries That the Process Uses?
- 9.6.10. What Functions Are Allocating Heap Memory?
- 9.7. Optimizing Disk I/O Usage
-
9.8. Optimizing Network I/O Usage
- 9.8.1. Is Any Network Device Sending/Receiving Near the Theoretical Limit?
- 9.8.2. Is Any Network Device Generating a Large Number of Errors?
- 9.8.3. What Type of Traffic Is Running on That Device?
- 9.8.4. Is a Particular Process Responsible for That Traffic?
- 9.8.5. What Remote System Is Sending the Traffic?
- 9.8.6. Which Application Socket Is Responsible for the Traffic?
- 9.9. The End
- 9.10. Chapter Summary
-
10. Performance Hunt 1: A CPU-Bound Application (GIMP)
- 10.1. CPU-Bound Application
- 10.2. Identify a Problem
- 10.3. Find a Baseline/Set a Goal
- 10.4. Configure the Application for the Performance Hunt
- 10.5. Install and Configure Performance Tools
- 10.6. Run Application and Performance Tools
- 10.7. Analyze the Results
- 10.8. Jump to the Web
- 10.9. Increase the Image Cache
- 10.10. Hitting a (Tiled) Wall
- 10.11. Solving the Problem
- 10.12. Verify Correctness?
- 10.13. Next Steps
- 10.14. Chapter Summary
-
11. Performance Hunt 2: A Latency-Sensitive Application (nautilus)
- 11.1. A Latency-Sensitive Application
- 11.2. Identify a Problem
- 11.3. Find a Baseline/Set a Goal
- 11.4. Configure the Application for the Performance Hunt
- 11.5. Install and Configure Performance Tools
- 11.6. Run Application and Performance Tools
- 11.7. Compile and Examine the Source
- 11.8. Using gdb to Generate Call Traces
- 11.9. Finding the Time Differences
- 11.10. Trying a Possible Solution
- 11.11. Chapter Summary
-
12. Performance Hunt 3: The System-Wide Slowdown (prelink)
- 12.1. Investigating a System-Wide Slowdown
- 12.2. Identify a Problem
- 12.3. Find a Baseline/Set a Goal
- 12.4. Configure the Application for the Performance Hunt
- 12.5. Install and Configure Performance Tools
- 12.6. Run Application and Performance Tools
- 12.7. Simulating a Solution
- 12.8. Reporting the Problem
- 12.9. Testing the Solution
- 12.10. Chapter Summary
- 13. Performance Tools: What’s Next?
- A. Performance Tool Locations
- B. Installing oprofile
Product information
- Title: Optimizing Linux® Performance: A Hands-On Guide to Linux® Performance Tools
- Author(s):
- Release date: March 2005
- Publisher(s): Pearson
- ISBN: 0131486829
You might also like
book
Performance Tuning for Linux® Servers
Proven techniques for optimizing web, file, print, database, and application servers Practical introductions to open source …
book
System Performance Tuning, 2nd Edition
System Performance Tuning answers one of the most fundamental questions you can ask about your computer: …
book
Oracle Database 11g Performance Tuning Recipes: A Problem-Solution Approach
Performance problems are rarely "problems" per se. They are more often "crises" during which you're pressured …
book
The Wireshark Field Guide
The Wireshark Field Guide provides hackers, pen testers, and network administrators with practical guidance on capturing …