Sitemap
Table of Contents
Copyright
IBM Press
On Demand Computing Books
WebSphere Books
More Books from IBM Press
DB2® Books
Preface
Acknowledgments
About the Editors
About the Contributors
Part I. Linux Overview
Chapter ONE. Linux Installation Issues
Introduction
Preinstallation Planning
Configurable 2.6 Kernel Features
Linux Logging Facility
System Initialization: BSD Versus System V Initialization
Summary
References
Chapter TWO. 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
Chapter THREE. Overview of Server Architectures
Introduction
Linux Servers
Processors and Multiprocessing
Memory
I/O
Linux Enterprise Servers
Linux Clusters
Examples of Server Systems
Summary
Part II. Performance Analysis Tools
Chapter FOUR. System Performance Monitoring
Introduction
Background on Linux and Performance Analysis
CPU Utilization
Memory Utilization
I/O Utilization
Network Utilization
Summary
References
Chapter FIVE. System Trace Tools
Introduction
Requirements for System Tracing
The top Utility
strace
OProfile
Performance Inspector
Summary
References
Chapter SIX. 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
Part III. System Tuning
Chapter SEVEN. System Performance Principles and Strategy: A Benchmarking Methodology Case Study
Introduction
Performance Evaluation Methodologies
Benchmarking Methodology Case Study
Analysis Methodology
Benchmarks
Summary
Acknowledgments
References
Chapter EIGHT. 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
Chapter NINE. The Linux Virtual MemoryPerformance Implications
Introduction
Memory and Address Space
High-Memory Support
Paging and Swapping
The Linux Page Tables
New Features in Linux 2.6
Summary
References
Chapter TEN. I/O SubsystemsPerformance 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
Chapter ELEVEN. File System Tuning
Introduction
File System Fundamentals
Journaled File Systems
Disks Factor into File System Performance
Fragmenting a File System
File Synchronization
bdflush Parameters
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
Chapter TWELVE. Network Tuning
Introduction
The Network Protocol Stack
Kernel Parameter Tuning Mechanisms
Kernel Parameter Tuning Mechanisms
Kernel Auto Tuning
Core Kernel Parameter Descriptions
Core Kernel Parameter Descriptions
TCP/IPv4 Protocol Kernel Parameters
TCP/IPv4 Protocol Kernel Parameters
Summary
References
Chapter THIRTEEN. Interprocess Communication
Introduction
What Is Interprocess Communication?
Linux SysV IPC Resources and the ipcs Command
Semaphore Parameters
Semaphore Parameters
Message Queue Parameters
Message Queue Parameters
Shared Memory Segment Parameters
Shared Memory Segment Parameters
Dynamically Modifying the Configurable IPC Parameters
Dynamically Modifying the Configurable IPC Parameters
Configuring IPC Parameters Statically
Configuring IPC Parameters Statically
Pipes
Summary
Chapter FOURTEEN. Code Tuning
Introduction
General Principles
Profiling to Understand the Application
Compiler Options as Tuning Tools
Code Tuning
Algorithm: Achieving Performance Through Design Choices
Summary
Part IV. Performance Characterization of Linux Server Applications
Chapter FIFTEEN. 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
Chapter SIXTEEN. File and Print Servers
Introduction
Types of Dedicated Network Storage Servers
Optimizing the Performance of Network Storage
References
Chapter SEVENTEEN. Database Servers
Introduction
Overview of Database Architectures
Database Tuning Areas to Consider
Process Management
Memory Management
I/O Management
Summary
Chapter EIGHTEEN. Application Servers
Introduction
The Application Server Defined
Java, J2EE, and Application Servers
Performance Characterization of Application Servers
Improving Performance and High Availability
Summary
References
Part V. Tuning Case Studies
Chapter NINETEEN. 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
Chapter TWENTY. Case Study: File System Tuning
Introduction
Analyzing File Layout
Tuning File Systems
Measuring I/O
Summary
References
Chapter TWENTY-ONE. Case Study: Network Performance on Linux
Introduction
Benchmarks Used in This Case Study
Enhancements in the Linux 2.4 and 2.6 Kernels
Case Study
Summary
References
Chapter TWENTY-TWO. 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
Appendix A. Tuning Kernel Parameters
Introduction
The sysctl Interface
The procfs Interface
sysfs (Linux Kernel 2.6 Only)
General Kernel Parameters
General Kernel Parameters
Virtual Memory
File System
Network
|