Course Overview
Keeping your Linux systems running optimally is a mission-critical function for most Linux IT professionals. This course will teach you the appropriate tools, subsystems, and techniques you need to get the best possible performance out of Linux.
Who should attend
This course is primarily intended for system administrators and technology architects who need to select and tune their environment to maximize speed and efficiency.
Prerequisites
Students should be experienced Linux users. Familiarity with local system administration concepts covered in Linux for System Administrators (LFS301) is required.
Course Content
Introduction
- Linux Foundation
- Linux Foundation Training
- Logistics
Performance Optimization Principles
- Methodology
- Optimization Process
- Investigation Tools
Benchmarking
- Performance Benchmarks
- Synthetic Benchmarks
- Application Benchmarks
Tuning Interfaces
- Kernel Tunables
- Kernel Parameters
- Application Interfaces
- tuned
- Hardware Tunables
Monitoring Interfaces
- /proc Filesystem
- Command-line Utilities
- Performance Data Collection
- Nagios
- Ganglia
- Kernel Monitoring
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
Tracing Tools
- User Space Tracing
- strace
- Library Tracing
- Kernel Tracing
- ftrace
- Systemtap
- Tracing Applications with SystemTap
CPU Subsystem
- CPU Concepts and Architecture
- CPU-Level Optimizations
- Specialized Instruction Sets
- CPU Topologies
- BIOS Settings
Power Management
- Device Power Management
- CPU Power Saving States
- Frequency Scaling
- Power Management Tools
Process Scheduling
- Design
- Scheduling Policies
- Scheduling Tunable Settings
- CPU Affinity and Isolation
- Interrupt Affinity
Memory Subsystem
- Overview
- Page Lookup Optimization and Huge Pages
- Controlling Swapping from Applications
- Minimizing Faults
NUMA Optimizations
- Key NUMA Concepts
- CPU Concepts and Architecture
- NUMA Memory Allocation
- NUMA Statistics
I/O Subsystem
- Storage Stack Overview
- I/O Scheduler Concepts
- I/O Scheduler Algorithms
- Hardware Considerations
- Tuning Storage Devices
Local Filesystems
- Choosing the Right Filesystem
- Ext3/4 Journaling Modes
- Filesystem Attributes
Network Filesystems
- Network File System (NFS)
- NFSv4
- pNFS
Storage and IO
- Software RAID Refresher
- RAID Levels
- RAID configuration
- Logical volumes
- Volumes and Volume Groups
- Creating Logical Volumes
- Raw Devices
- Asynchronous I/O
Analyzing the I/O Subsystem
- iostats
- iotop
- blktrace
- blkparse
- btrace
- btt
- blkiomon
Network Subsystem Optimization
- Network Stack Overview
- Optimizing for Latency and Throughput
- Network Interface Hardware Settings
- Offloading Techniques
- TCP Optimization
- Monitoring and Diagnostic Tools
Virtualization
- Virtualization Overview
- Disk Considerations
- Network Consideratons