Problem

Gerade Linux-Neulinge haben ein Problem sich eine vernünftige Übersicht über ihre Server-Auslastung zu erhalten. Manchmal werden sogar die richtigen Tools benutzt aber die Werte falsch interpretiert.
Eins der größten Mythen ist z.B. die Load-Statistik...

Erklärungen:

Fangen wir mit den Tools selbst an:

top

Eine typische Ausgabe von top bei SuSE:

top - 15:42:43 up 253 days,  2:51,  6 users,  load average: 1.36, 1.30, 1.70
Tasks: 145 total,   1 running, 142 sleeping,   0 stopped,   2 zombie
Cpu(s):  4.3% us,  0.5% sy,  0.0% ni, 95.0% id,  0.2% wa,  0.0% hi,  0.0% si
Mem:   2075252k total,  1791644k used,   283608k free,    17072k buffers
Swap:  2048276k total,   401480k used,  1646796k free,  1373048k cached

  PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND
11338 root      16   0  1936 1072 1712 R  0.3  0.1   0:00.23 top
    1 root      16   0   588   68  444 S  0.0  0.0   0:48.50 init

Häufige Fragen hierbei: Was bedeuten die vielen Abkürzungen?
us : CPU-Anteil an User-Prozessen
sy : CPU-Anteil an System-/Kernel-Prozessen
ni : CPU-Nice-Time (Prozesse mit geringer Priorität)
id : CPU-Idle-Time (Leerlauf)
wa : CPU-Wartezeit auf externe Ereignisse (I/O)
hi : Hard Interrupts
si : Soft Interrupts

ps

Das Programm ps wird meist mit den Parametern -aux aufgerufen. Dies bedeutet alle Terminal Prozesse, Username und alle Prozesse ohne Terminal.
Dann kommt manchmal noch ein f dazwischen, welches die Prozesse in einer Baumstruktur darstellt.
Typische Beispiele:

ps aux
ps auxf
ps aux | less
ps aux | grep mail

free

Detaliertere Auskunft über die Speicherbelegung.

             total       used       free     shared    buffers     cached
Mem:        126096      60792      65304          0      16268      16068
-/+ buffers/cache:      28456      97640
Swap:       248996     136324     112672

Das ungenutzte Speicherbereiche geswappt werden ist übrigens normal und noch lange kein Grund zur Panik.
Genauso normal wie daß der Hauptspeicher meistens rand voll ist. Linux nutzt nämlich einen dynamischen HD-Cache. Jenachdem wieviel Speicher noch frei ist werden Festplattenzugriffe im Speicher zwischen gelagert.
Der Speicher wird erst eng, wenn sowohl der Haupt als auch der Swap-Speicher ständig gefüllt ist. Dann ist nämlich kein Platz mehr für neue Prozesse.

vmstat

procs -----------memory---------- ---swap-- -----io---- --system-- ----cpu----
 r  b   swpd   free   buff  cache   si   so    bi    bo   in    cs us sy id wa
 1  0 136324  63748  15232  18664    3    1     6     1    1     2  4  0 95  0

Die verwendeten Abkürzungen sind bereits oben bei top.

Load

Für viele ist hier der wichtigste Wert load average. Dieser ist aber nur bei richtiger Interpretation wirklich aussagekräftig:
Erstmal ist es wichtig zu verstehen, daß der Load keine Momentaufnahme ist sondern ein Mittelwert der Prozessauslastung über die Zeit.
Gemeint ist übrigens wirklich die "Prozessauslastung" und nicht die "CPU-Auslastung"!
Er wird berechnet anhand der run-queue. Dies ist die Kernel interne Prozess-Warteschlange. Ein Load von 100% bedeutet, daß in diesem Zeitraum eine CPU zu 100% ausgelastet sein könnte. Was sie aber meistens nicht der Fall ist weil die Prozesse nicht die erwartete Auslastung nutzt.

Bei top werden immer 3 Load-Werte angezeigt:
Der Wert über eine Minute, über 5 Minuten und über 15 Minuten.
Wer einen Server mit 2 CPU's oder Dual-Core hat, kann sich auf einen Kontrollwert von 200% einstellen.
Ausschlaggebend ob ein Server wirklich überlastet ist, wäre eine Beobachtung über einen größeren Zeitraum. Hierzu nimmt man entsprechende Tool, die auch eine grafische Ausgabe ermöglichen wie z.B. MRTG.

Weiterführende Links:

Kategorien:

Stichwörter:

linux · top · vmstat · free · memory · user · load · queue · zeit · prozesse · auslastung ·