Detailed Course Outline
Unit 1 - Basics: Principles and Terminology
- What is performance tuning?
- Steps in the tuning process
- Quantifying performance
Unit 2 - Tools for Obtaining Information
- The sysfs and proc filesystems and the sysctl utility
- System process queues
- The system activity reporter
- Passing parameters to kernel modules
- Generating reports using standard utilties
- Benchmarking
- Monitoring systems with SNMP and MRTG
Unit 3 - Monitoring the Kernel
- Kernel profiling and OProfile
- Monitoring the kernel with SystemTap
Unit 4 - Hardware Performance Considerations
- Memory: levels, types
- Cache
- Disk and I/O
Unit 5 - The CPU: Processes and Scheduling
- Controlling processor speed
- How the Linux kernel schedules processes
- Process priority
- Obtaining processor performance information
Unit 6 - Memory
- How Processes and the kernel utilize memory
- System tunables that affect memory performance
- How page and buffer caches work
- Monitoring and controlling memory usage
- The virtual memory subsystem
Unit 7 - The I/O Subsystem and Filesystems
- Tuning the disk I/O subsystem
- I/O scheduling
- The virtual file system
- File system tunable parameters
- Layout of the ext2 and ext3 filesystems
- Journaling
Unit 8 - Network Performance
- Factors affecting performance
- Viewing device information
- Ethernet channel bonding
- Network sockets
- Layers of the OSI model
- TCP tuning
Unit 9 - Application Tuning
- Causes of performance problems
- Application tuning
- Viewing application behaviors using standard tools
- NFS
- Apache
- Samba