Mittwochmorgen 9:47. In #incident schreibt jemand „prod fühlt sich langsam an". Du sshst dich ein und friert kurz ein, weil du nicht weißt, ob top mit Shift+M oder Shift+P nach CPU sortiert, ob iostat standardmäßig in MB/s oder Sektoren rechnet, ob ss -s wirklich das zeigt, was du brauchst. Du musst nichts davon wissen. Fünf Fragen ergeben ein Bild.
1. Top nach CPU
$ clai welche 10 Prozesse verbrauchen gerade am meisten CPU→ ps -eo pid,user,%cpu,%mem,comm --sort=-%cpu | head -11PID USER %CPU %MEM COMMAND8821 app 84.2 12.4 java8901 app 31.1 3.2 node
Eine einzelne Messung ist kein Evangelium — aber sie ist ein Sofort-Schnappschuss und zeigt zu 95 % auf den richtigen Prozess.
2. Top nach RSS
$ clai top 10 Prozesse nach residentem Speicher→ ps -eo pid,user,rss,%mem,comm --sort=-rss | head -11PID USER RSS %MEM COMMAND8821 app 1985432 12.4 java4567 app 1180224 7.2 node
%MEM ist Prozent; RSS sind die tatsächlich residenten Kilobyte. Für „wer frisst Speicher" willst du RSS.
3. Disk-I/O über ein 10-Sekunden-Fenster
$ clai zeige Disk-I/O pro Gerät jede Sekunde, 10 Mal→ iostat -dx 1 10Device r/s w/s rkB/s wkB/s %utilsda 12.0 340.2 192.0 18432.0 87.4
87 % %util heißt: dieses Gerät ist gerade der Engpass. Ohne iostat -x fehlt diese Spalte.
4. Speicher in menschenlesbar
$ clai zeige Speicherverbrauch in lesbarer Form→ free -h total used free shared buff/cache availableMem: 15Gi 12Gi 428Mi 32Mi 2.7Gi 2.6GiSwap: 2.0Gi 1.2Gi 820Mi
-h gibt lesbare Einheiten. available ist die Spalte, die habe ich Speicher? tatsächlich beantwortet — nicht free, das täuschend niedrig sein kann.
5. Offene Netzwerk-Verbindungen
$ clai zeige alle established Verbindungen mit Prozessnamen→ ss -tnp state establishedESTAB 10.0.1.12:54322 10.0.1.50:5432 users:(("app",pid=8821))ESTAB 10.0.1.12:51002 17.253.144.10:443 users:(("clai",pid=4012))
Die Form der Triage
Fünf Fragen, zwei Minuten, du hast ein Bild: welcher Prozess, welche Ressource, welches Gerät, welche Verbindung. Häufig stellst du zwei oder drei nacheinander — Top nach CPU zur Verdächtigung, Top nach RSS zur Bestätigung, iostat zum Ausschluss der Platte. Schneller als sich durch htop-Tastenbelegungen zu kämpfen.
Siehe auch
- Prozess auf Port killen — natürlicher nächster Schritt, wenn du den Verdächtigen identifiziert hast.
- Netzwerk-Triage — wenn der Engpass am Ende das Netz ist und nicht der Host.