Lekcija 1Analiza pomnilnika: free -m, /proc/meminfo, slabtop, smem—interpretacija uporabljenega proti razpoložljivemu pomnilniku in vedenju izmenjaveTu boste analizirali vedenje pomnilnika z uporabo free, /proc/meminfo, slabtop in smem. Poglavje razlaga Linuxovo predpomnilništvo, medpomnilnike in povračilnike, kako interpretirati uporabo izmenjave in kako zaznavati puščanje pomnilnika, fragmentacijo ter napačno nastavljene omejitve.
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 risksLekcija 2Uporaba omrežja in ozka grla: iftop, nload, ss, netstat, ip -s link, tc, tcpdump—identifikacija nasičenosti omrežja in problematičnih povezavTo poglavje obravnava diagnosticiranje uporabe omrežja in ozkih grl z uporabo iftop, nload, ss, ip, tc in tcpdump. Naučili se boste identificirati nasičenost, hrupne sosede, stanja povezav in težave na ravni paketov, ki prispevajo k počasnim aplikacijam.
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 tcpdumpLekcija 3Zakasnitev shranjevanja in globlji I/O: blktrace, bpftrace (osnovni skripti), fio za teste—kako meriti in interpretirati zakasnitev in prepustnostTo poglavje obravnava zakasnitev shranjevanja in globljo analizo I/O z uporabo blktrace, osnovnih skript bpftrace in fio testov. Naučili se boste meriti zakasnitev in prepustnost, interpretirati globino vrste in ločiti omejitve naprave od težav z obremenitvijo.
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 bottlenecksLekcija 4Preiskava procesov: ps, filtri top/htop, pgrep, pidstat, nice/renice—kako najti CPU- in pomnilniško obremenjene proceseNaučili se boste preiskovati procese s ps, filtri top ali htop, pgrep, pidstat in nice ali renice. Poglavje prikazuje, kako identificirati CPU in pomnilniško obremenjene naloge, slediti I/O na proces in prilagoditi prioritete za zmanjšanje konkurence.
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 reniceLekcija 5Pregled virov sistema: top, htop, vmstat, mpstat, dstat—kaj prikazuje vsako in pričakovani vzorci izhodovTu boste naučili brati posnetke virov sistema z orodji kot so top, htop, vmstat, mpstat in dstat. Poglavje se osredotoča na razumevanje metrik CPU, pomnilnika in obremenitve ter prepoznavanje normalnih proti patološkim vzorcem uporabe.
Key CPU, load, and memory fields in topUsing htop for interactive process analysisvmstat for run queue, swap, and I/O insightmpstat for per-CPU utilization and steal timedstat for combined multi-resource timelinesLekcija 6Diskovni I/O in preverbe datotečnega sistema: iostat, iotop, sar -d, lsblk, df -h, du -sh, tune2fs, xfs_info—zaznavanje ozkih grl I/O in nizkega prostoraTo poglavje se osredotoča na diskovni I/O in zdravje datotečnega sistema z uporabo iostat, iotop, sar -d, lsblk, df, du, tune2fs in xfs_info. Naučili se boste zaznavati nasičenost, kopičenje vrst, napake datotečnega sistema in pogoje nizkega prostora, ki poslabšajo zmogljivost.
Using iostat to spot busy and slow devicesUsing iotop to find I/O heavy processessar -d for historical disk utilization trendsChecking layout and types with lsblk and dfFinding space hogs with du and inode checksLekcija 7Dnevniki sistema in dnevniški sistem: journalctl (systemd), /var/log/messages, /var/log/syslog, dnevniki preverjanja pristnosti—kaj iskati in zakajTo poglavje razlaga, kako uporabljati systemd journalctl in klasične datoteke dnevnikov, kot so /var/log/messages, /var/log/syslog in dnevnike preverjanja pristnosti. Naučili se boste, katere vzorce iskati, kako filtrirati hrup in kako dnevniki podpirajo analizo korenskih vzrokov.
journalctl basics and useful filtering optionsReading /var/log/messages and /var/log/syslogFinding errors, warnings, and rate-limited eventsAnalyzing authentication and sudo related logsCorrelating log timestamps with incidentsLekcija 8Časovno in zgodovinsko spremljanje: sar, sysstat, collectl—zbiranje in branje zgodovinskih metrik za korelacijo dogodkovNaučili se boste zbirati in interpretirati zgodovinske metrike z uporabo sar, sysstat in collectl. Poglavje razlaga, kako načrtovati zbiranje podatkov, brati poročila časovnih vrst in korelirati anomalije zmogljivosti s spremembami konfiguracije ali namestitvami.
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 windowsLekcija 9Vpogledi v kernel in razporejevalnik: dmesg, sysctl -a, parametri /proc/sys/vm—kaj razkrivajo sporočila jedra in nastavljive vrednostiTu boste raziskovali vpoglede v kernel in razporejevalnik z uporabo dmesg, sysctl in parametrov /proc/sys/vm. Poglavje razlaga, kako sporočila jedra, nastavljive vrednosti in vedenje razporejevalnika razkrivajo težave s strojno opremo, napačne konfiguracije in možnosti nastavitve.
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 changesLekcija 10Pristop k določanju korenskih vzrokov: korak-po-korak odločitveno drevo za klasifikacijo težav kot CPU, RAM, diskovni I/O ali omrežjeTo poglavje predstavlja praktično odločitveno drevo za analizo korenskih vzrokov. Naučili se boste klasificirati incidente kot vezane na CPU, pomnilnik, diskovni I/O ali omrežje, katere orodja zagnati v vsaki veji in kako iterativno izpopolnjevati hipoteze z zbranimi dokazi.
Initial triage and problem statementClassifying CPU versus I/O bound symptomsDistinguishing memory pressure from leaksIdentifying network versus local bottlenecksIterative hypothesis testing with metrics