Book description
System Performance Tuning answers one of the most fundamental questions you can ask about your computer: How can I get it to do more work without buying more hardware? In the current economic downturn, performance tuning takes on a new importance. It allows system administrators to make the best use of existing systems and minimize the purchase of new equipment. Well-tuned systems save money and time that would otherwise be wasted dealing with slowdowns and errors. Performance tuning always involves compromises; unless system administrators know what the compromises are, they can't make intelligent decisions.Tuning is an essential skill for system administrators who face the problem of adapting the speed of a computer system to the speed requirements imposed by the real world. It requires a detailed understanding of the inner workings of the computer and its architecture. System Performance Tuning covers two distinct areas: performance tuning, or the art of increasing performance for a specific application, and capacity planning, or deciding what hardware best fulfills a given role. Underpinning both subjects is the science of computer architecture. This book focuses on the operating system, the underlying hardware, and their interactions. Topics covered include:
- Real and perceived performance problems, introducing capacity planning and performance monitoring (highlighting their strengths and weaknesses).
- An integrated description of all the major tools at a system administrator's disposal for tracking down system performance problems.
- Background on modern memory handling techniques, including the memory-caching filesystem implementations in Solaris and AIX. Updated sections on memory conservation and computing memory requirements.
- In depth discussion of disk interfaces, bandwidth capacity considerations, and RAID systems.
- Comprehensive discussion of NFS and greatly expanded discussion of networking.
- Workload management and code tuning.
- Special topics such as tuning Web servers for various types of content delivery and developments in cross-machine parallel computing
Publisher resources
Table of contents
- Preface
- 1. An Introduction to Performance Tuning
-
2. Workflow Management
- 2.1. Workflow Characterization
- 2.2. Workload Control
- 2.3. Benchmarking
- 2.4. Concluding Thoughts
-
3. Processors
- 3.1. Microprocessor Architecture
- 3.2. Caching
- 3.3. Process Scheduling
- 3.4. Multiprocessing
- 3.5. Peripheral Interconnects
- 3.6. Processor Performance Tools
- 3.7. Concluding Thoughts
- 4. Memory
-
5. Disks
- 5.1. Disk Architecture
- 5.2. Interfaces
- 5.3. Common Performance Problems
-
5.4. Filesystems
- 5.4.1. vnodes, inodes, and rnodes
- 5.4.2. The Unix Filesystem (UFS)
- 5.4.3. Logging Filesystems
- 5.4.4. The Second Extended Filesystem (EXT2)
- 5.4.5. The Third Extended Filesystem (EXT3)
- 5.4.6. The Reiser Filesystem (ReiserFS)
- 5.4.7. The Journaled Filesystem (JFS)
- 5.4.8. The Temporary Filesystem (tmpfs)
- 5.4.9. Veritas VxFS
- 5.4.10. Caching Filesystems (CacheFS)
- 5.5. Tools for Analysis
- 5.6. Concluding Thoughts
- 6. Disk Arrays
-
7. Networks
- 7.1. Network Principles
- 7.2. Physical Media
- 7.3. Network Interfaces
-
7.4. Network Protocols
- 7.4.1. IP
-
7.4.2. TCP
- 7.4.2.1. Connection initiation and SYN flooding
- 7.4.2.2. Path MTU discovery and the maximum segment size
- 7.4.2.3. Buffers, watermarks, and windows
- 7.4.2.4. Retransmissions
- 7.4.2.5. Deferring acknowledgments
- 7.4.2.6. Window congestion and the slow start algorithm
- 7.4.2.7. TCP timers and intervals
- 7.4.2.8. The Nagle algorithm
- 7.4.3. UDP
- 7.4.4. TCP Versus UDP for Network Transport
-
7.5. NFS
- 7.5.1. Characterizing NFS Activity
- 7.5.2. Tuning Clients
-
7.5.3. Tuning Servers
- 7.5.3.1. Designing disk subsystems for NFS servers
- 7.5.3.2. NVRAM caching
- 7.5.3.3. Memory requirements
- 7.5.3.4. The two basic types of NFS servers
- 7.5.3.5. Tuning the number of NFS threads
- 7.5.3.6. Adjusting the buffer cache
- 7.5.3.7. The maxusers parameter
- 7.5.3.8. The directory name lookup cache (DNLC)
- 7.5.3.9. The inode cache
- 7.5.3.10. Observing NFS server performance with nfsstat
- 7.5.4. Wide Area Networks and NFS
- 7.6. CIFS via Unix
- 7.7. Concluding Thoughts
-
8. Code Tuning
- 8.1. The Two Critical Approaches
- 8.2. Techniques for Code Analysis
- 8.3. Optimization Patterns
-
8.4. Interacting with Compilers
- 8.4.1. Typical Optimizations: -fast
- 8.4.2. Optimization Level: -xO
- 8.4.3. Specifying Instruction Set Architecture: -xarch
- 8.4.4. Specifying Processor Architecture: -xchip
- 8.4.5. Function Inlining: -xinlining and -xcrossfile
- 8.4.6. Data Dependency Analysis: -xdepend
- 8.4.7. Vector Operations: -xvector
- 8.4.8. Default Floating Point Constant Size: -xsfpconst
- 8.4.9. Data Prefetching: -xprefetch
- 8.4.10. Quick and Dirty Compiler Flags
- 8.4.11. Profiling Feedback
- 8.5. Concluding Thoughts
- 9. Instant Tuning
- About the Authors
- Colophon
- Copyright
Product information
- Title: System Performance Tuning, 2nd Edition
- Author(s):
- Release date: February 2002
- Publisher(s): O'Reilly Media, Inc.
- ISBN: 9780596002848
You might also like
book
Foundations of Software and System Performance Engineering: Process, Performance Modeling, Requirements, Testing, Scalability, and Practice
“If this book had been available to Healthcare.gov’s contractors, and they read and followed its life …
book
BPF Performance Tools
Use BPF Tools to Optimize Performance, Fix Problems, and See Inside Running Systems BPF-based performance tools …
book
Problem-solving in High Performance Computing
Problem-Solving in High Performance Computing: A Situational Awareness Approach with Linux focuses on understanding giant computing …
book
Systems Performance, 2nd Edition
covers concepts, strategy, tools, and tuning for operating systems and applications, using Linux-based operating systems as …