Always Learning
Performance Tuning for Linux Servers

Performance Tuning for Linux Servers

Sandra Johnson, Gerrit Huizenga, Badari Pulavarty

Jun 2005, Paperback, 576 pages
ISBN13: 9780131447530
ISBN10: 013144753X
This title is no longer available.
£39.99

This title cannot be purchased online
  • Print pagePrint page
  • Email this pageEmail page
  • Write a reviewWrite a review
  • Share

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.

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.

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.

Your opinions count

Be the first to review this product. Write your review now.