HAPPY BOOKSGIVING
Use code BOOKSGIVING during checkout to save 40%-55% on books and eBooks. Shop now.
Register your product to gain access to bonus material or receive a coupon.
Linux Server Performance Tuning provides the knowledge and skills needed to
understand and improve the performance of Linux servers. It describes the
collective practical experience of IBM Linux Technology Center experts in
Linux performance monitoring, evaluation and measurement, analysis, and
tuning of Linux servers. It discusses methodologies for improving and
maximizing the performance of business server applications running on an
Intel-based hardware platform and the Linux operating system.
Readers will obtains valuable insight into the tuning techniques needed to
improve the performance of their software running on Linux. This includes an
overview of the Linux kernel (including installation), a synopsis of the various
Linux performance tools that can be used to isolate performance issues, and
how to use them, and tuning principles, strategies and techniques for various
Linux components such as the scheduler, memory and I/O subsystems. In
addition, case studies for tuning these subsystems are also included, as well as
the performance characterization of several Linux server applications, including
web servers, database servers, application servers, and print and file servers.
Preface.
Acknowledgments.
About the Editors.
About the Contributors.
I. LINUX OVERVIEW.
1. Linux Installation Issues.
Introduction
Preinstallation Planning
Configurable 2.6 Kernel Features
Linux Logging Facility
System Initialization: BSD Versus System V Initialization
Summary
References
2. Kernel Overview.
Introduction
The Evolution of Linux
Linux Kernel Architecture
Process Management
Interprocess Communications
The Linux Symmetrical Multiprocessing (SMP) Model
File Systems
New Features in Linux 2.6
Summary
References
3. Overview of Server Architectures.
Introduction
Linux Servers
Processors and Multiprocessing
Memory
I/O
Linux Enterprise Servers
Linux Clusters
Examples of Server Systems
Summary
II. PERFORMANCE ANALYSIS TOOLS.
4. System Performance Monitoring.
Introduction
Background on Linux and Performance Analysis
CPU Utilization
Memory Utilization
I/O Utilization
Network Utilization
Summary
References
5. System Trace Tools.
Introduction
Requirements for System Tracing
The top Utility
strace
OProfile
Performance Inspector
Summary
References
6. Benchmarks as an Aid to Understanding Workload Performance.
Introduction
Benchmarking to Improve Your Workload
What Types of Benchmarks Are There?
Microbenchmarks
Web Server Benchmarks
Summary
III. SYSTEM TUNING.
7. System Performance Principles and Strategy: A Benchmarking Methodology Case Study.
Introduction
Performance Evaluation Methodologies
Benchmarking Methodology Case Study
Analysis Methodology
Benchmarks
Summary
Acknowledgments
References
8. Scheduler Tuning.
Introduction
Single-Processor Systems
Symmetric Multiprocessing (SMP)
Non-Uniform Memory Access (NUMA)
Symmetric Multithreading (SMT)
The 2.6 Linux Scheduler
Load Balancing
Tunable Parts of the Scheduler
Summary
References
9. The Linux Virtual Memory Performance Implications.
Introduction
Memory and Address Space
High-Memory Support
Paging and Swapping
The Linux Page Tables
New Features in Linux 2.6
Summary
References
10. I/O Subsystems Performance Implications.
Introduction
I/O Scheduling and the Block I/O (BIO) Layer
Read and Write Request Batches
Read Anticipation Heuristic
I/O Components that Affect Performance
Addressing an I/O Device
Summary
References
11. File System Tuning.
Introduction
File System Fundamentals
Journaled File Systems
Disks Factor into File System Performance
Fragmenting a File System
File Synchronization
bdflush Parameters
Asynchronous Input and Output
Raw Disk I/O
Ext2 and Ext3
ReiserFS
Journaled File System (JFS)
Next-Generation File System (XFS)
Summary
References
12. Network Tuning.
Introduction
The Network Protocol Stack
Kernel Parameter Tuning Mechanisms
Kernel Auto Tuning
Core Kernel Parameter Descriptions
TCP/IPv4 Protocol Kernel Parameters
Summary
References
13. Interprocess Communication.
Introduction
What Is Interprocess Communication?
Linux SysV IPC Resources and the ipcs Command
Semaphore Parameters
Message Queue Parameters
Shared Memory Segment Parameters
Dynamically Modifying the Configurable IPC Parameters
Configuring IPC Parameters Statically
Pipes
Summary
14. Code Tuning.
Introduction
General Principles
Profiling to Understand the Application
Compiler Options as Tuning Tools
Code Tuning
Algorithm: Achieving Performance Through Design Choices
File I/O
Summary
IV. PERFORMANCE CHARACTERIZATION OF LINUX SERVER APPLICATIONS.
15. Web Servers.
Introduction
HTTP Requests and Responses
Network Behavior of a Web Server
Anatomy of a Web Server Transaction
Different Models of Web Servers
Tuning Web Servers
Summary
References
16. File and Print Servers.
Introduction
Types of Dedicated Network Storage Servers
Optimizing the Performance of Network Storage
References
17. Database Servers.
Introduction
Overview of Database Architectures
Database Tuning Areas to Consider
Process Management
Memory Management
I/O Management
Summary
18. Application Servers.
Introduction
The Application Server Defined
Java, J2EE, and Application Servers
Performance Characterization of Application Servers
Improving Performance and High Availability
Summary
References
V. TUNING CASE STUDIES.
19. Case Study: Tuning the i/o Schedulers in Linux 2.6.
Introduction
Benchmark Environment and Workload Profiles
I/O Schedulers and Performance
Single-CPU Single-Disk Setup
8-Way RAID-5 Setup
16-Way RAID-0 Setup
AS Sequential Read Performance
AS Versus Deadline Performance
CFQ Performance
Summary
References
20. Case Study: File System Tuning.
Introduction
Analyzing File Layout
Tuning File Systems
Measuring I/O
Summary
References
21. Case Study: Network Performance on Linux.
Introduction
Benchmarks Used in the Case Study
Enhancements in the Linux 2.4 and 2.6 Kernels
Case Study
Summary
References
22. Case Study: Commercial Workload Tuning.
Introduction
Overview of Commercial Workload Tuning
Standard Commercial Workload Model for J2EE
Our Commercial Workload Model: Stock Trading
The Performance Analysis Exercise
Summary
References
Appendix A: Tuning Kernel Parameters.
Introduction
The sysctl Interface
The procfs Interface
sysfs (Linux Kernel 2.6 Only)
General Kernel Parameters
Virtual Memory
File System
Network
Index.