
Identify common system monitoring tools, including sysstat and performance co pilot, to analyze Linux performance. Monitor disk, CPU, and network metrics via command line or GUI with ps, top, free.
Master monitoring Linux processes with the ps command, viewing pid, tty, and cpu/memory usage, and using BSD and Unix formats with options like -x, -u, -p, and sorting by memory.
Monitor Linux processes in real time with the top command, an interactive tool showing CPU usage, load averages, and process states, to spot IO wait and zombie processes.
Learn to read top command output, interpret memory and swap usage, and sort processes by memory, pid, or CPU time, with details on pid, user, priority, and resource metrics.
Learn to monitor memory on Linux with the free command, interpreting total, used, free, buffer/cache, and available memory, and using -m, -h, -t options, swap, and continuous display.
Learn to monitor Linux filesystem usage with lsblk, df -h, du, and findmnt; inspect partitions, mount points, UUIDs, and filesystem types using practical, human-readable outputs.
Explore the GNOME system monitor on the GNOME desktop to visualize processes, CPU, memory, swap, network history, and file system usage in a graphical interface.
Practice Linux system monitoring with ps, pidof, and etime to list processes, runtime, and explore hierarchies with --forest; sort by rss or cpu and use top to manage and kill.
Explore the sysstat package utilities for Linux performance monitoring, including mpstat, iostat, pidstat, tapestat, and sar, to monitor CPU, IO, memory, and network, export data to csv/json/xml, and generate graphs.
Master iostat for linux performance by monitoring cpu and device io stats, install sysstat across distros, and use -c, -d, -x, -xd, -k or -m with delays and disk targets.
Learn to use the mpstat command to monitor processor statistics, view all CPUs with -A, filter by -P, run timed reports, and check version with -V.
Learn to use pidstat from the sysstat package to monitor CPU, memory, io, and paging for all or specific processes, with interval options and -d, -r, -c, and -I.
Learn to use the system activity reporter sar to monitor CPU, memory, and IO in Linux, log data with cron via sysstat, and analyze saved reports for performance insights.
Understand sar advantages for linux performance monitoring: automated daily system stats for 30 days, continuous monitoring, quick overviews, and historical data analysis across cpu and memory resources.
Explore configuring sar data collection with sa1 and sa2, cron, and sysstat to log cpu, memory, disk, io, and network statistics, plus viewing options for historical data.
Learn to schedule tasks with systemd timer by using a timer unit to trigger a service every 10 minutes, configure the sysstat timer, and enable the timer with daemon reload.
Learn to monitor Linux systems with Cockpit, a free Red Hat tool, visualizing CPU, memory, swap, and disk I/O while performing admin tasks via a web browser.
Learn to monitor Linux performance with performance co pilot, collecting and querying subsystem data to diagnose latency and resource issues using the pxp package, rpm logger, and historical data retrieval.
Use the dmesg command to view kernel messages and extract hardware details from the ring buffer, including cpu, memory, and network interfaces, with options like -T for readability.
Learn to retrieve cpu information on modern systems with multiple cpus using ls cpu, including architecture, sockets, cores per socket, hyper-threading, and caches.
Explore the dmidecode command to retrieve bios, smbios, and hardware details from sysfs on linux, including memory, cpu, types, serial number, manufacturer, and model.
Learn to retrieve peripheral information with lspci and lsusb, listing PCI and USB devices, viewing detailed output with -v, -n, and -t, and inspecting specific devices using -s.
Explore portable hardware locality with the hwloc package, using lstopo for graphical or text output and lshw with -short or -C system for detailed hardware classes.
Explore the proc file system, a pseudo file system mounted at /proc that exposes kernel data, memory, cpu, and details about specific processes, with writable tunables and boot parameters.
Explore kernel tunables in /proc/sys to customize devices, filesystem, networking, and memory behavior. Changes write to memory immediately and are non-persistent across reboots; labs show making them permanent.
Modify kernel tunables on a running Linux system using in-memory changes, sysctl, and /etc/sysctl.d persistence, and learn to enable icmp echo and adjust tcp memory values.
Use sysctl to list and view kernel tunables, then change a parameter like vm.swappiness; note that changes are non-persistent across reboots until made persistent.
Persist kernel tunables by creating a .conf file in /etc/sysctl.d, since boot loads these settings and sysctl -p can apply changes; avoid editing vendor files in /usr/lib/sysctl.d.
Explore the sysfs file system, a virtual file system mounted on /sys at boot that exposes information for devices, kernel modules, and bus types with read-only and writable files.
Learn to manage linux kernel modules as a sys admin by loading and unloading drivers with modprobe and lsmod, and understanding how modules extend the kernel and map hardware resources.
Learn how to view and adjust kernel module options, such as buffer_kbs, using modinfo and modprobe. Create permanent settings with /etc/modprobe.d and verify loaded values in /sys/modules.
Practice lab demonstrates debugging a Linux SAS raid setup with the megaraid_sas module, showing how to disable msix via modprobe.d and persist changes by reloading the module.
Explore tuning profiles of the tune daemon to optimize Linux performance, including static and dynamic modes and profiles like balanced, low latency, and high throughput.
Manage tuning profiles from the command line using tune adm to list, change, and verify profiles, enable the tune daemon, and monitor with systemctl and web console.
Activate the tune service and apply the power save tuning profile to optimize server performance, after checking installation and selecting an inbuilt profile.
Configure resource limits with ulimit to control memory and processes, using soft and hard limits stored in /etc/security/limits.conf and viewed with ulimit -a.
Configure persistent ulimit rules with the pam_limits module in /etc/pam.d and create a custom /etc/security/limits.d/db.conf to cap max logins for the db group at 2.
Configure hard resource limits in Linux by creating a custom limits.d file to cap Tom's processes at 12 using nproc and set the db group's virtual memory to 131072 KB.
Set a hard limit for a service using a systemd drop-in: create a .d directory for the unit, add 10-example.conf with limit nofile=32, reload systemd daemon, and restart.
Configure memory accounting and apply a 1 gb memory limit for the county service using system CTM commands. Inspect the systemd controller files to confirm the settings.
Explore the linux cpu subsystem and its key metrics—run queue, cpu utilization, and load average—and understand context switching, including voluntary and nonvoluntary switches, and how to view ctxt in /proc.
Learn how the run queue tracks active CPU processes, how the kernel schedules them by priority, and how to monitor CPU utilization and load averages with top, sar, and uptime.
Understand how Linux memory works, including physical RAM, pages, and swap, and how the swapper moves inactive pages in and out to free memory.
Analyze disk I/O and I/O wait on Linux servers to troubleshoot performance issues by monitoring read/second, write/second, and TPS, and coordinating with storage teams.
Learn how to identify network issues and packet loss between linux servers using tcpdump and ifconfig, capture logs, analyze rx/tx errors, and collaborate with the network team.
Understand what a process is and how the kernel allocates memory and cpu, then view processes with ps commands and key fields like pid, ppid, cpu, and cmd.
Explore foreground and background processes in Linux, learning how commands run, how input and output are handled, and how to use & and cron to run tasks asynchronously.
Explore process stats, including R, D, S, T, and Z, to understand running, sleeping, stopped, zombie states, disk I/O issues, and paging with swap.
Navigate linux process management using ps to observe process ids, tty or pty, and commands across shells. Adjust priorities with nice and renice, and compare ps -ef and ps -ao.
this lab demonstrates foreground and background processes using a while loop and tail -f for real-time updates, with job control via fg, bg, and ctrl-c or ctrl-z.
Explore how the lsof command lists open files and reveals which processes use disk files, sockets, pipes, and devices on Linux and Unix systems, including tmp filesystem usage.
Learn to use lsof to list open files, interpret fields like command, pid, user, fd, and type, and identify processes keeping directories busy to unmount safely.
Discover how to use lsof to identify which processes open specific files, list open files under a directory, and filter by user, process name, or pid for server tuning.
Learn to troubleshoot file system access with fuser, which lists process IDs and users accessing files or file systems, helping you unmount busy file systems by terminating relevant processes.
Learn how tcpdump, the default packet sniffing tool on Linux, can capture and filter tcp/ip packets on a specific interface, save them to a file, and support network analysis.
Learn to use tcpdump to capture and save packets on a specified interface, control the count, and read from pcap files, with filters for tcp, udp, and port 22.
Learn to use tcpdump to capture and inspect traffic on a specific interface between two hosts, saving captures for later analysis of latency and packet loss.
Use the Linux find command to search and locate files by permissions, users, groups, file type, date, size, and other criteria, and specify paths and arguments.
Practice using the Linux find command to locate files by name, type, and extension in the current directory or /home. Learn how to apply case-insensitive searches and filesystem-wide queries.
Learn to use the find command to locate files and directories by permissions in /home, then apply actions like chmod via -exec to change 777 to 644.
Lab-1 demonstrates using the find command to locate .log files in /home, identify the owner, safely remove them, and locate empty, hidden, or user-owned files such as sverma.
Learn to locate files and directories by date using the find command, using mtime and mmin for modified times and minutes, and compare accessed versus modified versus exist.
Learn to use the find command to locate files by size, from up to 1 MB to more than 10 MB, and delete them with rm -rf.
Identify the biggest cpu consuming processes on a linux box with top and ps -eo, and troubleshoot high cpu utilization using dd and sar.
practice diagnosing memory utilization issues on linux by using free -m and top to identify the biggest memory consuming processes during a simulated system hang.
Reach the last lecture of the Linux performance monitoring and analysis course module and share doubts in the course Q&A or ping me; good luck on your exam and career.
Course Contents
Linux Performance Monitoring & Tuning
Introduction about Performance monitoring in Linux
Monitoring Processes using ps command
Monitoring Processes using top command
Monitoring memory usage
Monitoring File System Usage
GNOME System Monitor
Practice Lab Session
Overview Sysstat Package Utilities
Lab - Iostat command
Lab - mpstat command
Lab - pidstat command
Overview SAR
Advantages of SAR
Lab - SAR
Scheduling tasks with Systemd timer
Monitoring Systems using Cockpit
Monitoring Systems using performance co-pilot
Familiar with various Commands to manage performance issues in Linux Servers
top
vmstat
iostat
free
lsof
tcpdump- Network Packet Analyzer
Following are the Linux performance statistics using sar command.
Collective CPU usage
Individual CPU statistics
Memory used and available
Swap space used and available
Overall I/O activities of the system
Individual device I/O activities
Run queue and load average data
Network statistics
Report sar data from a specific time
Viewing Hardware Resources
Viewing kernel messages using dmesg command
Retrieving CPU Information
Retrieving DMI Information - dmidecode
Retrieving peripheral Information
hwloc & lshw command
Configuring Kernel Tunables
Proc File System
Kernel Tunables
Modifying Kernel Tunables
Modify Kernel Tunables Using Sysctl Command
Modify Kernel Tunables Persistently
Sysfs File System
About Kernel Modules
Practice Lab Session
Overview about tuning profiles
Managing profiles from the command line
Lab Session - Tuning profile
Managing Resource Limits
Limiting System Resources with ulimit
Configuring Persistent ulimit Rules
Practice Lab Session
Setting Limits for Services
Lab - Configure the service with a cgroup
Process Management
Understanding ps commands with custom properties & Nice values etc
Different stats of a process like "D", "S", "T", "Z" etc
Kill commands to terminate the process
Lab
Linux Find Commands
Basic find commands for finding files with names
Find files based on their permissions
Search files based on owners & groups
Find files and directories based on date & time
Find files and directories based on size
Top Running Processes
Command to list out top processes consuming highest memory utilization
Command to list out top processes consuming highest cpu utilization
Lab on lsof - List open files & fuser
lsof command used in many Linux/Unix like system that is used to display list of all the open files and the processes.
Lab on tcpdump- Network Packet Analyzer
For example: number of packets received (transmitted) through the network card, statistics of packet failure etc
Practice Lab Sessions
Practical Lab Session - High CPU Utilization
Practical Lab Session - High Memory Utilization