Lesson 1Memory analysis: free -m, /proc/meminfo, slabtop, smem—interpreting used vs available memory and swap behaviourIn this part, you will check memory use with free, /proc/meminfo, slabtop, and smem. It explains Linux caching, buffers, and reclaim processes, how to read swap use, and how to find memory leaks, fragmentation, and wrong limits.
Reading free -m and understanding cached memoryKey fields in /proc/meminfo for diagnosisUsing slabtop to inspect kernel slab usageUsing smem to attribute memory per processRecognizing swap thrashing and OOM risksLesson 2Network usage and bottlenecks: iftop, nload, ss, netstat, ip -s link, tc, tcpdump—identifying network saturation and problematic connectionsThis part covers finding network use and blocks using iftop, nload, ss, ip, tc, and tcpdump. You will learn to spot full networks, noisy neighbours, connection states, and packet problems that make applications slow.
Monitoring live bandwidth with iftop and nloadInspecting sockets and states with ssUsing ip -s link to view interface errorsBasics of tc for shaping and rate limitingTargeted packet capture with tcpdumpLesson 3Storage latency and deeper I/O: blktrace, bpftrace (basic scripts), fio for tests—how to measure and interpret latency and throughputThis part covers storage delay and deep I/O checks using blktrace, simple bpftrace scripts, and fio tests. You will learn how to measure delay and flow, read queue depth, and tell device limits from workload problems.
Understanding latency, IOPS, and throughputUsing blktrace to inspect block I/O patternsIntroductory bpftrace scripts for disk latencyDesigning fio workloads that mimic productionReading fio reports and spotting bottlenecksLesson 4Process investigation: ps, top/htop filters, pgrep, pidstat, nice/renice—how to find CPU- and memory-heavy processesYou will learn to check processes with ps, top or htop filters, pgrep, pidstat, and nice or renice. The part shows how to find CPU and memory heavy tasks, track I/O per process, and change priorities to cut down fights.
Listing and filtering processes with psUsing pgrep and pkill safely and preciselyUsing pidstat for per process CPU and I/OFiltering top and htop by user or resourceAdjusting priorities with nice and reniceLesson 5System resource overview: top, htop, vmstat, mpstat, dstat—what each shows and expected output patternsHere you will learn to read whole system resource views using tools like top, htop, vmstat, mpstat, and dstat. The part focuses on understanding CPU, memory, and load measures, and knowing normal from bad use patterns.
Key CPU, load, and memory fields in topUsing htop for interactive process analysisvmstat for run queue, swap, and I/O insightmpstat for per-CPU utilisation and steal timedstat for combined multi-resource timelinesLesson 6Disk I/O and filesystem checks: iostat, iotop, sar -d, lsblk, df -h, du -sh, tune2fs, xfs_info—detecting I/O bottlenecks and low spaceThis part focuses on disk I/O and filesystem health using iostat, iotop, sar -d, lsblk, df, du, tune2fs, and xfs_info. You will learn to find full use, queue build-up, filesystem errors, and low space that harm performance.
Using iostat to spot busy and slow devicesUsing iotop to find I/O heavy processessar -d for historical disk utilisation trendsChecking layout and types with lsblk and dfFinding space hogs with du and inode checksLesson 7System logs and journaling: journalctl (systemd), /var/log/messages, /var/log/syslog, auth logs—what to search for and whyThis part explains how to use systemd journalctl and old log files like /var/log/messages, /var/log/syslog, and auth logs. You will learn what patterns to look for, how to filter noise, and how logs help find main causes.
journalctl basics and useful filtering optionsReading /var/log/messages and /var/log/syslogFinding errors, warnings, and rate-limited eventsAnalysing authentication and sudo related logsCorrelating log timestamps with incidentsLesson 8Time-based and historical monitoring: sar, sysstat, collectl—collecting and reading historical metrics to correlate eventsYou will learn how to gather and read past metrics using sar, sysstat, and collectl. The part explains how to plan data gathering, read time series reports, and match performance oddities with setup changes or rollouts.
Enabling and configuring sysstat collectionUsing sar for CPU, memory, and I/O historyReading sar network and load average trendsUsing collectl for multi-resource timelinesCorrelating metrics with change windowsLesson 9Kernel and scheduler insights: dmesg, sysctl -a, /proc/sys/vm parameters—what kernel messages and tunables revealHere you will look into kernel and scheduler views using dmesg, sysctl, and /proc/sys/vm parameters. The part explains how kernel messages, tunables, and scheduler actions show hardware problems, wrong setups, and tuning choices.
Reading dmesg for hardware and driver issuesListing and querying sysctl tunable valuesKey /proc/sys/vm parameters for memoryScheduler related kernel parameters overviewSafely persisting kernel tuning changesLesson 10Approach to root cause determination: step-by-step decision tree to classify issues as CPU, RAM, disk I/O, or networkThis part shows a practical decision tree for finding main causes. You will learn how to group problems as CPU, memory, disk I/O, or network bound, which tools to use in each step, and how to improve guesses with gathered proof.
Initial triage and problem statementClassifying CPU versus I/O bound symptomsDistinguishing memory pressure from leaksIdentifying network versus local bottlenecksIterative hypothesis testing with metrics