What is the Objective of This Course

  •  Implement open source tools to profile memory, CPU, network and other subsystems.
  • Tune Systems for certain workload (e.g. HPC, large memory, Database Server, File Server etc.)
  • Tune Systems based on monitoring and tuning analysis
  • Tune Virtual machines (host & guests)
  • Understand hardware and design limitations on performance of a system
  • Understand queuing theory, BDP and other important tuning concepts

Who Should Attend This Course

  • Students who are Linux system Administrators with experience on Linux systems, preferably on Red Hat Enterprise Linux
  • Linux system programmers
  • RHCE Certified candidates who are keen to gain internal knowledge of Linux Server.


Red Hat Enterprise  Performance Tuning (RH442) is designed to teach senior Linux® system administrators the methodology of performance tuning for Red Hat Enterprise Linux. This course discusses system architecture with an emphasis on understanding the implications of system architecture on system performance, methods for testing the effects of performance adjustments, open source benchmarking utilities, methods for analyzing system and networking performance, and tuning configurations for specific application loads.


Experienced Linux system administrators responsible for maximizing resource utilization through performance tuning. An RHCE interested in earning a Red Hat Certification of Expertise, or an Red Hat Certified Architect (RHCA).


  •  Red Hat Certified Engineer (RHCE) certification or equivalent experience
  • For candidates that have not earned their RHCE, confirmation of the correct skill set knowledge can be obtained by passing the online skills assessment at redhat.com/training/skills_assessment/

What Will You Learn in This Course

Introduction to Performance Tuning

  • Understand the goal of Performance Tuning
  • Prepare Performance Tuning Agreement(PTA)
  • Disable unused Services
  • What is the difference between Monitoring a Linux System and Profiling a Linux System

Collecting, graphing and Interpreting data

  • Understanding the concepts of measuring units (kilo, mega, giga, tera, peta, exa)
  • Use of sar, iostat, vmstat, top, mpstat etc. to gather and analyze data
  • How to format gathered data using awk
  • Use of gnuplot to graph the data
  • Use RRD tool to gather and display data

General Tuning

  • Understand the basics of Queuing Theory.
  • Usage of modinfo and modprobe to configure kernel module parameters
  • Working with the adaptive tuning daemon named “tuned”. Also working with tuned-adm command and “server profiles”.(tuned, tuned-adm, tuned,conf)
  • Filesystems: Fragmentation and RAID Layouts (e2freefrag, e2fsck, mke2fs, mkfs)

Limiting Resource Usage

  • Use of pam_limits to restrict users from consuming unlimited resources(blkio, cpu, cpuset,memory,freezer)
  • Usage of cgroups to limit users (cgcreate,cgconfig,cgdelete,cgset, cgclassifyetc.

Hardware Profiling

  • Collect hardware information from the BIOS, kernel and userspace tools(lscpu,getconf, x86info,dmesg,dmidecode)
  • Use of “sosreport” to collectsystem information (lspci, lsusb, lshal)
  • Gather information of memory organization on NUMA based system. (numactl)
  • Undestand performance characteristics of hard drives and SSD storage.(zcav)

Sofware Profiling

  • How to run process with real time priority (chrt)
  • Dynamically change process priority(nice, renice, killall, time)
  • How to use “strace” to profile software
  • How to use “ltrace” to profile software
  • How to use “valgrind” to profile software
  • How to use “pref” to profile software(perf-list, perf-stat, perf-top,perf-timechart)


  • Use of “systemtap”  to profile software(stap, stapex,stapfunc)
  • Extend and existing systemtap script

Mail Server Tuning

  • Analyzing mail server workload(Disk, memory, CPU, Network)
  • Select tuned profile for mail server
  • How to compensate for rotational delay (Disk Elevators)

Large Memory Workload Tuning

  • Understand basics of memory management(L1 Cache, L2 Cache etc.)
  • Locate memory leaks
  • Tune swap usage
  • Influence memory reclamation
  • Understand NUMA

Tuning For CPU Intensive Workload

  • Limit CPU access
  • Manually balance interrupts
  • Pin processes to specific CPU
  • Utilize real time scheduling

File Server Tuning

  • How to configure an external ext4 journal
  • Configuring journaling modes
  • Select a “tuned” profile for a fileserver workload.
  • Measure network performance
  • Calculate and implement BDP
  • Configure 802.3ad link aggregation and Configure Jumbo frames

Database Server Tuning

  • Select “tuned” profile to support database usage
  • Tune TCP network latancy using sysctl, qperf
  • Examine and tune IPC (Inter Process Communication) Mechanism (pinfo, ipcs, ipcrm, proc)
  • What is Huge Pages and how can it be used to improve memory performance
  • What is the concept of “memory overcommit” and “swappiness” and how they affect the performance of database server.

Power Usage Tuning

  • Use of “tuned” to implement power saving strategy
  • Customize tuned profile to specify a specific I/O scheduler
  • Use” powertop” to generate an interactive profile of system’s cpu related power consumption

Virtualization Tuning

  • How to “pin” a CPU in virtual environment
  • Configure memory allocation to guest machines
  • How to use cgroups and ksm to fine tune virtual machines
  • Tuning of disk elevator
  • Tuning of block devices to improve performance of virtual machines