Linux Performance Tuning - LFS426

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. [4 days]

Course description

This course is designed to give you all the tools and techniques you need to keep your Linux systems running at optimal levels. These techniques and tools have been developed and tested in the most demanding high-performance computing environments.

In this course, you’ll learn:

  • Industry configuration best practices
  • The best tried-and-true optimization performance tuning tools and techniques
  • How to manually optimize the kernel’s behavior
  • Tracing, profiling and instrumentation techniques across a wide range of conditions
  • And more.

This course is designed to work with a wide range of Linux distributions, so you will be able to apply these concepts regardless of your distro.

Course details

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.

Previous knowledge

Students should be experienced Linux users. Familiarity with local system administration concepts covered in LFS320 Linux System Administration is required.

Course Materials

As part of your registration, a printed copy of the course manual will be course manual will be provided.

Stockholm, Bucharest or on-site
On request
Number of days

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
• tuned
• Hardware Tunables
5. Monitoring Interfaces
• /proc Filesystem
• Command-line Utilities
• Performance Data Collection
• Nagios
• Ganglia
• 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
• Ext3/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
• Offloading Techniques
• TCP Optimization
• Monitoring and Diagnostic Tools
19. Virtualization
• Virtualization Overview
• Disk Considerations
• Network Consideratons
20. Conclusion