Product SiteDocumentation Site

Red Hat Enterprise Linux 6

Performance Tuning Guide

Optimizing subsystem throughput in Red Hat Enterprise Linux 6

Edition 1.0

Red Hat Subject Matter Experts

Edited by

Don Domingo

Edited by

Laura Bailey


Legal Notice

Copyright © 2011 Red Hat, Inc. and others.
The text of and illustrations in this document are licensed by Red Hat under a Creative Commons Attribution–Share Alike 3.0 Unported license ("CC-BY-SA"). An explanation of CC-BY-SA is available at http://creativecommons.org/licenses/by-sa/3.0/. In accordance with CC-BY-SA, if you distribute this document or an adaptation of it, you must provide the URL for the original version.
Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d of CC-BY-SA to the fullest extent permitted by applicable law.
Red Hat, Red Hat Enterprise Linux, the Shadowman logo, JBoss, MetaMatrix, Fedora, the Infinity Logo, and RHCE are trademarks of Red Hat, Inc., registered in the United States and other countries.
Linux® is the registered trademark of Linus Torvalds in the United States and other countries.
Java® is a registered trademark of Oracle and/or its affiliates.
XFS® is a trademark of Silicon Graphics International Corp. or its subsidiaries in the United States and/or other countries.
MySQL® is a registered trademark of MySQL AB in the United States, the European Union and other countries.
All other trademarks are the property of their respective owners.


1801 Varsity Drive
RaleighNC 27606-2072 USA
Phone: +1 919 754 3700
Phone: 888 733 4281
Fax: +1 919 754 3701

Abstract
The Performance Tuning Guide describes how to optimize the performance of a system running Red Hat Enterprise Linux 6. It also documents performance-related upgrades in Red Hat Enterprise Linux 6.
While this guide contains procedures that are field-tested and proven, Red Hat recommends that you properly test all planned configurations in a testing environment before applying it to a production environment. You should also back up all your data and pre-tuning configurations.

Preface
1. Document Conventions
1.1. Typographic Conventions
1.2. Pull-quote Conventions
1.3. Notes and Warnings
2. Getting Help and Giving Feedback
2.1. Do You Need Help?
2.2. We Need Feedback!
1. Overview
1.1. Audience
1.2. Horizontal Scalability
1.2.1. Parallel Computing
1.3. Distributed Systems
1.3.1. Communication
1.3.2. Storage
1.3.3. Converged Networks
2. Red Hat Enterprise Linux 6 Performance Features
2.1. 64-Bit Support
2.2. Ticket Spinlocks
2.3. Dynamic List Structure
2.4. Tickless Kernel
2.5. Control Groups
2.6. Storage and File System Improvements
3. Monitoring and Analyzing System Performance
3.1. The proc File System
3.2. GNOME and KDE System Monitors
3.3. Built-in Command-line Monitoring Tools
3.4. Tuned and ktune
3.5. Application Profilers
3.5.1. SystemTap
3.5.2. OProfile
3.5.3. Valgrind
3.5.4. Perf
3.6. Red Hat Enterprise MRG
4. CPU
4.1. CPU and NUMA Topology
4.1.1. Using numactl and libnuma
4.2. NUMA and Multi-Core Support
4.3. NUMA enhancements in Red Hat Enterprise Linux 6
4.3.1. Bare-metal and scalability optimizations
4.3.2. Virtualization optimizations
4.4. CPU Scheduler
4.4.1. Realtime scheduling policies
4.4.2. Normal scheduling policies
4.4.3. Policy Selection
4.5. Tuned IRQs
5. Memory
5.1. Huge Translation Lookaside Buffer (HugeTLB)
5.2. Huge Pages and Transparent Huge Pages
5.3. Capacity Tuning
5.4. Tuning Virtual Memory
6. Input/Output
6.1. Features
6.2. Analysis
6.3. Tools
6.4. Configuration
6.4.1. Completely Fair Queuing (CFQ)
6.4.2. Deadline I/O Scheduler
6.4.3. Noop
7. Storage
7.1. Tuning Considerations for File Systems
7.1.1. Formatting Options
7.1.2. Mount Options
7.1.3. File system maintenance
7.1.4. Application Considerations
7.2. Profiles for file system performance
7.3. File Systems
7.3.1. The Ext4 File System
7.4. The XFS File System
7.4.1. Basic tuning for XFS
7.4.2. Advanced tuning for XFS
7.5. Clustering
7.5.1. Global File System 2
8. Networking
8.1. Network Performance Enhancements
8.2. Optimized Network Settings
8.3. Overview of Packet Reception
8.4. Resolving Common Queuing/Frame Loss Issues
8.4.1. NIC Hardware Buffer
8.4.2. Socket Queue
8.5. Multicast Considerations
A. Revision History