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
RAM
HDD
df -h -i
-
lsof
iotop
pidstat
iostat
Netzwerk
netstat
ss
lsof -i -P
bmon
nload
iftop
Ü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
- Wait
- Netzwerk
- Welche Verbindungen sind offen (
established
)?
- Welche
listen
sockets gibt es auf dem System?
- Bandbreite
- Latenz
- Wait
- 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)