Linux Performance Tuning (LFS426)

Overview
 
This advanced Linux training teaches you to optimize your application?s performance by acquiring useful performance metrics from the hardware, tracing applications and the Linux kernel, and tuning various aspects of the system, from the hardware to kernel settings and application optimizations.

Building upon years of cutting edge requirements in some of the most demanding environments on the planet, the Linux Foundation built this four-day class as a reference in the field of Linux performance tuning. Based on our experience with several major players in the high performance computing industry, we built this performance tuning class to present a wide range of optimization tools and techniques based on the most recent hardware and software technologies. Discussions of the Linux kernel default behaviors are used to present typical scenarios where manual optimization may be required in order to achieve optimal speeds.
 
The most recent Linux tracing, profiling and instrumentation techniques are covered in such a way that students will, by the end of the class, be properly equipped to handle a large range of performance problems while minimizing analysis time. Modern hardware designs and software programming techniques are presented in a Linux context in order to introduce current industry best practices to students.
 
Hands-on exercises put theory into practice and ensure that students walk out of the classroom with skills that can be immediately applied to their Linux environment.

Audience
 
This course is primarily intended for system administrators and technology architects who need to select and tune their environment to maximize speed and efficiency. Developers of native applications and anyone involved with technical support of Linux systems and applications will also greatly benefit from learning the tools and concepts covered in this class.
 
Prerequisites
 
We expect students to be experienced Linux users. Familiarity with local system administration concepts is required and we assume that the audience is comfortable with standard command line utilities used for file and process management, file editing, and basic shell scripting. This course also builds upon concepts and tools for Linux Network Management.
 

Show details
Course Outline

1.Introduction
 
  • Linux Foundation
  • Linux Foundation Training
  • Logistics
 
2.Performance Optimization Principles
 
  • Methodology
  • Optimization Process
  • Investigation Tools
 
3.Benchmarking
 
  • Performance Benchmarks
  • Synthetic Benchmarks
  • Application Benchmarks
 
4.Tuning Interfaces
 
  • Kernel Tunables
  • Kernel Parameters
  • Application Interfaces
  • Hardware Tunables
 
5.Monitoring Interfaces
 
  • /proc Filesystem
  • Command-line Utilities
  • Performance Data Collection
  • Nagios
  • Kernel Monitoring
 
6.Profiling Techniques and Tools
 
  • Performance Monitoring
  • Counters
  • Performance Ratios
  • Kernel vs Application Profiling
  • oprofile
  • Perf
  • Available perf events
  • Acquiring Performance Data with perf
  • Monitoring Performance from Within the Application
  • User Space Performance Monitoring with gprof
 
7.Tracing Tools
 
  • User Space Tracing
  • strace
  • Library Tracing
  • Kernel Tracing
  • FTrace
  • Systemtap
  • Tracing Applications with Systemtap
 
8.CPU Subsystem
 
  • CPU Concepts and Architecture
  • CPU-Level Optimizations
  • Specialized Instruction Sets
  • CPU Topologies
  • BIOS Settings
 
9.Power Management
 
  • Device Power Management
  • CPU Power Saving States
  • Frequency Scaling
  • Power Management Tools
 
10.Process Scheduling
 
  • Design
  • Scheduling Policies
  • Scheduling Tunable Settings
  • CPU Affinity and Isolation
  • Interrupt Affinity
 
11.Memory Subsystem
 
  • Overview
  • Page Lookup Optimization and Huge Pages
  • Controlling Swapping from Applications
  • Minimizing Faults
 
12.NUMA Optimizations
 
  • Key NUMA Concepts
  • CPU Concepts and Architecture
  • numa memory allocation
  • NUMA Statistics
 
13.I/O Subsystem
 
  • Storage Stack Overview
  • I/O Scheduler Concepts
  • I/O Scheduler Algorithms
  • Hardware Considerations
  • Tuning Storage Devices
 
14.Local Filesystems
 
  • Choosing the Right Filesystem
  • Ext2/3/4 Journaling Modes
  • Filesystem Attributes
 
15.Network Filesystems
 
  • Network File System (NFS)
  • NFSv4
  • pNFS
 
16.Storage and IO
 
  • Software RAID Refresher
  • RAID Levels
  • RAID configuration
  • Logical volumes
  • Volumes and Volume Groups
  • Creating Logical Volumes
  • Raw Devices
  • Asynchronous I/O
 
17.Analyzing the I/O Subsystem
 
  • iostats
  • iotop
  • blktrace
  • blkparse
  • btrace
  • btt
  • blkiomon
 
18.Network Subsystem Optimization
 
  • Network Stack Overview
  • Optimizing for Latency and Throughput
  • Network Interface Hardware Settings
  • Optimizing for Network Throughput
  • Optimizing for Network Latency
  • Buffer Sizes
  • Queue Sizes
  • Offloading Techniques
  • TCP Optimization
  • Monitoring and Diagnostic Tools
 
19.Conclusion