Load Average - Systemauslastung

Lesedauer: 4 Minuten

In UNIX Systemen liefert das top-Kommando eine Übersicht über die Auslastung des Systems in Echtzeit. Das beinhaltet den aktuellen Speicherbedarf (physikalischen und virtuellen RAM), die CPU- und Netzwerkauslastung, Disk I/O usw. Außerdem können Prozessleichen (Zombies) aufgespürt werden. Die meisten Anzeigen sind im Prinzip selbsterklärend, der Wert Load Average (Load Avg) jedoch bedarf vermutlich einer Erklärung.

$ top
Processes: 68 total, 5 running, 1 stuck, 62 sleeping, 321 threads                                                              13:08:46
Load Avg: 1.12, 1.14, 1.00  CPU usage: 11.48% user, 2.20% sys, 86.31% idle  SharedLibs: 10M resident, 7660K data, 0B linkedit.
MemRegions: 11326 total, 576M resident, 20M private, 314M shared. PhysMem: 610M wired, 890M active, 360M inactive, 1859M used, 4268M free.
VM: 149G vsize, 1042M framework vsize, 78246(476) pageins, 0(0) pageouts. Networks: packets: 241279/134M in, 215356/28M out.
Disks: 103298/4653M read, 55935/5541M written

Load Average beschreibt die durchschnittliche Systemauslastung in einem Werte Triple, welche die Auslastung der aktuellen Minute, der letzten fünf und der letzten 15 Minuten beschreibt. Dabei ist nicht die CPU-Auslastung gemeint, sondern vielmehr die Anzahl der Prozesse, welche in der Run Queue der CPU quasi Schlange stehen und auf Bearbeitung warten. Ein Prozess in der Run Queue erzeugt eine Load von 1, zwei Prozesse von 2 etc. Dabei ist es unerheblich, ob nun ein Prozess viel oder wenig Last erzeugt, ob er die CPU malträtiert oder ihr nur ein müdes Lächeln entlockt. Natürlich aber erzeugen Prozesse, die von der CPU schnell abgearbeitet werden können, dahinter nicht so schnell eine Schlange wartender Prozesse. Generell kann man sagen, dass je niedriger die Load des Systems ist, desto weniger ausgelastet ist es. Die Werte der Load Average geben demnach Auskunft zur Entwicklung der Systemauslastung. Aufgefallen ist mir dieser Wert zum ersten mal auf einem Webserver, welcher kaum noch mehr reagiert hat. Hier fanden sich load avg Werte im mittleren zweistelligen Bereich, was dann schon als extrem hohe Werte anzusehen sind.

Beispiele:

In der linken Grafik werden die Werte 6.51, 5.13, 1.85 grafisch dargestellt. Man sieht, dass die Last auf dem Computer innerhalb der letzten 15 Minuten erheblich gestiegen ist, wobei in den letzten fünf Minuten der Anstieg durchschnittlich nachgelassen hat.

In der mittleren Grafik wird mit den Werten 0.80, 1.71, 3.35 angezeigt, dass die Last in den letzten 15 Minuten deutlich heruntergegangen ist.

Die Grafik auf der Rechten kann man anhand der drei Zahlen 0.8, 1,56, 0.01 feststellen, dass innerhalb der letzten Viertelstunde eine erhebliche Rechenlast abgearbeitet wurde, denn zum aktuellen Zeitpunkt liegt die Durchschnittslast wesentlich tiefer als noch vor fünf Minuten.

Weitere Möglichkeiten sich die Load eines Systems anzeigen zu lassen sind die Kommandos uptime und w:

$ uptime
14:08  up 14:06, 3 users, load averages: 0,03 0,11 0,23
$ w 
14:08  up 14:07, 3 users, load averages: 0,03 0,10 0,23
USER     TTY      FROM              LOGIN@  IDLE  WHAT
pronto   console  -                  0:03   14:05 -
pronto   s000     -                 11:29         - w
pronto   s001     -                 11:37   30    -bash

Wenn ein Systemadministrator nun zB über einen Scheduler jede Stunde eine Load Average Abfrage startet und in eine Datei schreiben lässt, kann er sich ziemlich genau ein Bild von der Systemauslastung machen und evtl. Engpässe aufspüren. Laufen über Nacht zB ein paar geplante Wartungs- oder Backup-Tasks kann man die Load zu den Zeiten dieser Tasks ermitteln und dabei uU feststellen, dass möglicherweise die Ressourcen nicht ausreichen um eine akzeptable Betriebsleistung des Systems während dieser Phasen zu gewährleisten.

Loading

Updated on 6. Oktober 2024
Was this article helpful?

Related Articles