Performance Tuning for Linux Servers
This title is no longer available.
This title cannot be purchased online
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.
Proven techniques for optimizing web, file, print, database, and application servers
Practical introductions to open source performance management tools
Easy-to-understand examples based on Red Hat Enterprise Linux and Novell SUSE Linux Enterprise Server
An indispensable guide to maximizing Linux system and application performance
From Wall Street to Hollywood, Linux runs many of the world's most businesscritical systems. Linux performance now impacts the entire enterprise. In Performance Tuning for Linux Servers, a team of IBM's most-experienced Linux performance specialists shows you how to find bottlenecks, measure performance, and identify effective optimizations.
This book doesn't just cover kernel tuning: it shows how to maximize the end-to-end performance of real-world applications and databases running on Linux. Throughout, the authors present realistic examples based on today's most popular enterprise Linux platforms, Intel-based Red Hat Enterprise Linux, and Novell SUSE Linux Enterprise Server. These examples are designed for simplicity, clarity, and easy adaptation to any contemporary Linux environment. You'll discover how to
Install and configure Linux for maximum performance from the outset
Evaluate and choose the right hardware architecture for your Linux environment
Understand Linux kernels 2.4 through 2.6: components, performance issues, and optimization opportunities
Master core Linux performance tuning principles and strategies
Utilize free, open source tools for measurement, monitoring, system tracing, and benchmarking
Interpret performance data to analyze your Linux server's real-world behavior
Optimize Linux system schedulers, memory, I/O, file systems, and networking
Tune web, file, database, and application servers running commercial workloads
Predict the impact of changes in tuning parameters or configurations
Tune Linux code: optimize design, timing, sockets, threads, synchronization, and more
Architect for maximum performance: SMP scaling, clustering, and topology
Integrate kernel and application tuning in end-to-end system optimization projects
Whether you're an administrator, developer, integrator, or consultant, Performance Tuning for Linux Serverswill help you maximize the performance and value of every Linux system and application you run.
© Copyright Pearson Education. All rights reserved.
About the Editors.
About the Contributors.
I. LINUX OVERVIEW.
1. Linux Installation Issues.
Configurable 2.6 Kernel Features
Linux Logging Facility
System Initialization: BSD Versus System V Initialization
2. Kernel Overview.
The Evolution of Linux
Linux Kernel Architecture
The Linux Symmetrical Multiprocessing (SMP) Model
New Features in Linux 2.6
3. Overview of Server Architectures.
Processors and Multiprocessing
Linux Enterprise Servers
Examples of Server Systems
II. PERFORMANCE ANALYSIS TOOLS.
4. System Performance Monitoring.
Background on Linux and Performance Analysis
5. System Trace Tools.
Requirements for System Tracing
The top Utility
6. Benchmarks as an Aid to Understanding Workload Performance.
Benchmarking to Improve Your Workload
What Types of Benchmarks Are There?
Web Server Benchmarks
III. SYSTEM TUNING.
7. System Performance Principles and Strategy: A Benchmarking Methodology Case Study.
Performance Evaluation Methodologies
Benchmarking Methodology Case Study
8. Scheduler Tuning.
Symmetric Multiprocessing (SMP)
Non-Uniform Memory Access (NUMA)
Symmetric Multithreading (SMT)
The 2.6 Linux Scheduler
Tunable Parts of the Scheduler
9. The Linux Virtual Memory Performance Implications.
Memory and Address Space
Paging and Swapping
The Linux Page Tables
New Features in Linux 2.6
10. I/O Subsystems Performance Implications.
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
11. File System Tuning.
File System Fundamentals
Journaled File Systems
Disks Factor into File System Performance
Fragmenting a File System
Asynchronous Input and Output
Raw Disk I/O
Ext2 and Ext3
Journaled File System (JFS)
Next-Generation File System (XFS)
12. Network Tuning.
The Network Protocol Stack
Kernel Parameter Tuning Mechanisms
Kernel Auto Tuning
Core Kernel Parameter Descriptions
TCP/IPv4 Protocol Kernel Parameters
13. Interprocess Communication.
What Is Interprocess Communication?
Linux SysV IPC Resources and the ipcs Command
Message Queue Parameters
Shared Memory Segment Parameters
Dynamically Modifying the Configurable IPC Parameters
Configuring IPC Parameters Statically
14. Code Tuning.
Profiling to Understand the Application
Compiler Options as Tuning Tools
Algorithm: Achieving Performance Through Design Choices
IV. PERFORMANCE CHARACTERIZATION OF LINUX SERVER APPLICATIONS.
15. Web Servers.
HTTP Requests and Responses
Network Behavior of a Web Server
Anatomy of a Web Server Transaction
Different Models of Web Servers
Tuning Web Servers
16. File and Print Servers.
Types of Dedicated Network Storage Servers
Optimizing the Performance of Network Storage
17. Database Servers.
Overview of Database Architectures
Database Tuning Areas to Consider
18. Application Servers.
The Application Server Defined
Java, J2EE, and Application Servers
Performance Characterization of Application Servers
Improving Performance and High Availability
V. TUNING CASE STUDIES.
19. Case Study: Tuning the i/o Schedulers in Linux 2.6.
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
20. Case Study: File System Tuning.
Analyzing File Layout
Tuning File Systems
21. Case Study: Network Performance on Linux.
Benchmarks Used in the Case Study
Enhancements in the Linux 2.4 and 2.6 Kernels
22. Case Study: Commercial Workload Tuning.
Overview of Commercial Workload Tuning
Standard Commercial Workload Model for J2EE
Our Commercial Workload Model: Stock Trading
The Performance Analysis Exercise
Appendix A: Tuning Kernel Parameters.
The sysctl Interface
The procfs Interface
sysfs (Linux Kernel 2.6 Only)
General Kernel Parameters
Sandra K. Johnson, Ph.D., is a Senior Technical Staff Member and the Chief Technology Officer of Global Small and Medium Business, IBM Systems and Technology Group. She was formerly the Linux Performance Architect with the IBM Linux Technology Center in Austin, Texas. She has more than sixteen years of experience in designing and evaluating the performance of operating systems and applications. Johnson is a member of the IBM Academy of Technology.
Gerrit Huizenga is a software engineer and architect for Linux Base Technologies in the IBM Linux Technology Center in Beaverton, Oregon. Gerrit has been architecting, designing, and implementing operating system capabilities with a focus on performance, scalability, standards, and security for twenty years. Prior to his work at the IBM Linux Technology Center, Gerrit was the Chief Technologist for Operating Systems at Sequent Computer Systems, Inc.
Badari Pulavarty is a senior engineer at the IBM Linux Technology Center in Beaverton, Oregon. He has fifteen years of experience developing UNIX operating systems.
© Copyright Pearson Education. All rights reserved.