Wir wollen verstehen, welche Hardware-Ressourcen uns zur Verfügung stehen und wie wir mögliche Engpässe und Probleme identifizieren können. Grundsätzlich dreht sich diese Frage in der Regel um die Anzahl der zur Verfügung stehenden CPUs, Hauptspeichers, Festplatten und Netzwerkkapazitäten.
Manche Ressourcen-Limits werden auch aus Sicherheitsgründen vom Betriebssystem eingezogen, beispielsweise per ulimit
oder fs.file-max
. Ressourcen können auch mit cgroups
limitiert werden. Dazu lernst du später noch mehr.
Ziele
- Du kennst die verschiedenen Ressourcen-Parameter eines typischen Linux-Systems
- Du kennst für alle wichtigen Ressourcen die notwendigen Werkzeuge, um Details über die Nutzung anzuzeigen
- Du kannst die Daten interpretieren und erkennst mögliche Probleme
Inhalte
man
pages der toolings
CPU
lscpu
top
htop
RAM
free
vmstat
HDD
df -h -i
-
lsof
lsof -p
iotop
pidstat
iostat
PSI
head /proc/pressure/*
Netzwerk
netstat
ss
lsof -i -P
bmon
nload
iftop
Externe Inhalte
- Linux Performance Analysis in 60,000 Milliseconds Show archive.org snapshot
- Getting Started with PSI Show archive.org snapshot
Übungen
- Zum Einstieg schaust du dir die jeweiligen Themen an und verstehst was diese jeweils bedeuten:
- CPU
- CPU Kerne
- Hyperthreading
- CPU User
- CPU System
- wait
- steal
- Speicher
- Freier Speicher
- Belegter Speicher
- Swap
- Buffer
- Cache
- shared memory
-
available
memory
- Disk
- Verfügbarer Speicher
- Burst performance
- Caching/Buffer
- Schreibgeschwindigkeit
- Lesegeschwindigkeit
- IOPS
- Random Read/Write
- PSI
- Wie ist das Konzept der Pressure Stall Information Metriken?
- Wie unterscheidet es sich zur klassischen load average?
- Was ist der Unterschied zwischen some und full pressure?
- Netzwerk
- Welche Verbindungen sind offen (
established
)? - Welche
listen
sockets gibt es auf dem System? - Bandbreite
- Latenz
- Welche Verbindungen sind offen (
- CPU
- Finde die oben genannten "Metriken" in den verschiedenen tools die oben dargestellt werden. Schreib dir auf, wo du was gefunden hast und wo du was auslesen könntest.
- Lege dir eine Liste zurecht welche die üblichen Performance Bottlenecks sind und wie du prüfst ob diese anliegen
Posted by Thomas Eisenbarth to DevOps Curriculum (2022-01-24 10:06)