Home About Courses Schedule Services Webinars Contact Search

Linux Performance Management

SEE SCHEDULE

Duration: 4 Days

Method: Instructor led, Hands-on workshops

Price: $2400.00

Course Code: LI1026



Audience

Performance management specialists and system administrators who are or will be responsible for the tuning and capacity monitoring of one or more machines running Linux.

Description

Performance management requires an understanding of overall system architecture. This course takes the approach of tackling each major system of Linux individually, covering the necessary architectural background and then pointing out how resources are allocated, consumed, released, and reused. This course does not answer the question, "What do I change when I see such-and-such output from vmstat?" Instead, it takes a holistic approach that concentrates on understanding core system operations. Our goal is to provide a fundamental understanding of the Linux kernel so that as new updates are released, the student's existing knowledge base isn't rendered obsolete.

Some topics include information about running Linux inside a virtual machine but the focus of this course is Linux as a host operating system, not as a guest.

The course does not restrict itself to any given platform, but the Intel x86 environment is used for examples. Specifics of other hardware platforms are discussed only for comparison purposes.

This course currently targets Linux kernel version 3.10 and later, which means distributions beginning with Red Hat Enterprise Linux 7, Ubuntu 14.04, SUSE Linux Enterprise Server 12, and others. Some references are made to earlier kernel versions for critical analysis purposes.

Objectives

Upon successful completion of this course, the student will be able to:

  • Understand the operating system subsystems and their interactions
  • Understand the basic performance trade-offs of resource allocation
  • Describe how requests for CPU time, disk space, and memory are handled
  • Understand the performance implications of kernel tunable parameters
  • Use performance diagnostic tools to monitor and plan for future upgrades

Prerequisites

All information required for a proper understanding of the course material will be provided; however, one year of hands-on experience with software installation, building applications from source code, and similar administration topics will prove helpful.

Topics

  1. Performance Overview
    • Performance Basics
    • Response Time vs. Throughput (or "You can't have both")
    • Processes and Threads
    • Overall Performance Factors
    • Metrics
    • Caching vs. Buffering
    • Architecture as a Factor
  2. Performance Monitoring
    • Red Hat Monitoring Tools
    • Other Optional Tools
    • How are the /proc and /sys Filesystems Used?
    • User-written Tools
    • Kernel Tunable Parameters
  3. System Monitoring Tools
    • Interactive Commands
      • top
      • gnome-system-monitor
      • htop
      • sar and isag
      • others
    • Scripting Commands
      • sadc
      • vmstat
      • iostat
      • ifstat
      • netstat
      • others
    • Programmer's Tools
      • lsof
      • size
      • ltrace
      • strace
      • valgrind
      • others
  4. Process Management
    • Process Management Overview
    • The Native POSIX Threads Library
    • Resource Limits
    • Process Lifecycle
      • The fork() System Call
      • The exec() System Call
      • The exit() System Call
      • The wait() System Call
    • Time Slices
    • Real-Time Threads
    • CPU Affinity
    • Task Scheduling
    • The Nice Factor
    • CPU Schedulers (O(1) vs. CFS)
    • Control Groups: CPU
  5. Memory Management
    • Virtual Memory Concepts
    • Swapping vs. Paging
    • Pageable Memory vs. Pinned Memory
    • Process Address Space Management
    • Address Translations
    • Page Table Entries
    • How Page Faults Are Resolved
    • Memory Zones
    • Subsystem Cache Allocations (SLAB and SLUB allocators)
    • Shared Libraries
    • Control Groups: Memory
  6. Block I/O Performance
    • Overview of Linux I/O
    • Filesystem vs. Block Device
    • The ext3 and ext4 Filesystem Layout
    • Measuring I/O Speeds
    • I/O Schedulers
      • The Noop Scheduler - noop
      • The Completely Fair Queueing Scheduler - cfq
      • The Deadline Scheduler - deadline
      • The Anticipatory Scheduler - anticipatory
    • Tuning the ext3 and ext4 Filesystems
    • Logical Volume Manager Tuning
    • Control Groups: Block IO
  7. Network Performance Management
    • TCP/IP Layers
    • Network Layers
    • LAN Topology
    • Socket Controls
    • Network Services
    • Network File System
      • UDP Optimizations
      • TCP Optimizations
    • Control Groups: Network IO
  8. The Next Step
    • Techniques for Automatic Monitoring
    • Post-processing Monitoring Data
    • Planning Ahead