Home · Kontakt · Impressum
contents index previous up next
Next: 12.8 Tools zur Prozeß- Up: 12.7 Prozeß- und Systemlastüberwachung Previous: 12.7 Prozeß- und Systemlastüberwachung

Unterabschnitte



12.7.1 Load Average

Der Begriff Load bezeichnet die Auslastung eines Rechners, wie auch die Prozesse, die gerade ausgeführt werden. Ein Maß für die Systemauslastung ist das Load Average. Es ist ein Maß für die Anzahl der Prozesse, die auf ihre Verarbeitung von der CPU warten oder gerade verarbeitet werden, sich also im Zustand Runnable oder Running befinden. Natürlich ist durch die aktuelle Anzahl dieser Prozesse schlecht die Auslastung eines Systems abzuschätzen. Daher werden drei Mittelwerte (1 Minute, 5 Minuten und 15 Minuten) über die Anzahl der Prozesse gebildet. Das heißt also, wir können der Load Average entnehmen, wieviele Prozesse in der letzten Minute, den letzten 5 Minuten und den letzten 15 Minuten im Durchschnitt in der Verarbeitungschlange von der CPU gewartet haben.

Das Load Average wird vom Kernel ermittelt und in der virtuellen Datei /proc/loadavg notiert. Neben den drei Mittelwerte wird auch die aktuelle Anzahl der Prozesse in der Verarbeitungsschlange, die Anzahl aller Prozesse und die PID des zuletzt ausgeführten Prozesses angegeben.

tapico@enterprise:~> cat /proc/loadavg
4.30 1.44 0.50 2/91 4312

Ein Reihe von Tools wie uptime (Abschnitt 12.8.4), top (Abschnitt 12.8.3), w (Abschnitt 8.7.4) und procinfo (Abschnitt 12.8.6) lesen diese Datei aus und zeigen das Load Average an.

Was kann nun aber aus dem Load Average geschlossen werden? Normalerweise bedeutet ein hohes Load Average, daß der Rechner stark ausgelastet ist. Ideal ist ein Load Average von 1, da dann immer ein Prozeß in der Verarbeitungsschlange ist und sofort verarbeitet werden kann. Bei einem Load Average unter 1 hat die CPU teilweise nichts zu tun gehabt. Ist der Load Average über 1, dann müssen im Schnitt die Prozesse etwas warten, bevor Sie an die CPU kommen.

Normalerweise geht ein hoher Load Average auch mit einer hohen durchschnittlichen Rechenauslastung der CPU einher. Sind beide Angaben dauerhaft für das 15-Minuten-Mittel hoch, dann wäre es ratsam die Leistung der CPU zu erhöhen. Ein hohes Load Average muß aber nicht unbedingt zusammen mit einer hohen CPU-Auslastung zusammenhängen. Schauen wir uns doch mal das folgende Beispiel an.

12.7.1.0.1 Beispiel:

Ein Mailserver braucht im Schnitt 5 Minuten um eine Mail zu bearbeiten und auszuliefern. Dies ist ein völlig inakzeptable Leistung. Die Ausgabe des Befehls top liefert folgende Ausgabe.

root@mail-server:~ # top
 1:31pm up 2 days, 4:24, 3 users, load average: 17.03, 16.93, 17.28
 101 processes: 100 sleeping, 1 running, 0 zombie, 0 stopped
 CPU0 states: 1.0% user, 4.1% system, 0.0% nice, 94.0% idle
 CPU1 states: 2.0% user, 6.1% system, 0.0% nice, 91.0% idle
 Mem: 125844K av, 123272K used, 2572K free, 0K shrd, 5740K buff
 Swap: 257000K av, 141920K used, 115080K free 12624K cached
 ...

Auffällig ist die geringe Auslastung der beiden CPUs und das sehr hohe Load Average. Das Problem liegt also nicht in der Geschwindigkeit der CPUs, denn die drehen die meiste Zeit Däumchen. Auffällig ist, daß der Swap-Speicher stark genutzt wird. Dies sollte bei einem Server, der nur als Mail-Server dient, eigentlich nicht vorkommen. Eine Möglichkeit wäre also eine zu geringe Dimensionierung des Arbeitsspeichers. Der Rechner ist hauptsächlich mit der Ein- und Auslagerung von Speicherseiten beschäftigt, die die CPU nicht sehr stark belasten. Allerdings müßte der Mailserver schon sehr stark frequentiert werden um diesen Effekt zu erreichen.

Eine andere Möglichkeit ist eine zu langsame Festplatte. Beim Schreiben und Lesen von der Festplatte wird die CPU wenig gebraucht, allerdings blockiert der schreibende/lesende Prozess die CPU. Dies führt zu einem hohen Load Average aber zu einer kleinen CPU-Auslastung. Aber es geht noch weiter: Da die Daten nicht schnell genug geschrieben werden können, verbleiben Sie im Arbeitsspeicher und sorgen für einen größeren Speicherverbrauch. Die Katastrophe tritt in dem Moment ein, wenn der physikalische Arbeitsspeicher zu klein geworden ist und das System mit dem Auslagern auf die Festplatte beginnt. Die Zugriffe auf die langsame Festplatte erhöhen sich stark und die Verarbeitung einer eMail, die normalerweise nur Sekundenbruchteile braucht, dauert nun 5 Minuten.

Um das Problem zu lösen, sollte die Geschwindigkeit der Platte untersucht und die Zugriffsparameter optimiert werden. Reicht dies nicht aus, muß ein schnelles Plattensystem eingebaut werden. Sicherheitshalber sollte auch der physikalische Arbeitsspeicher erhöht werden um bei kurzfristigen Leistungspitzen besser puffern zu können.


contents index previous up next
Next: 12.8 Tools zur Prozeß- Up: 12.7 Prozeß- und Systemlastüberwachung Previous: 12.7 Prozeß- und Systemlastüberwachung
  © 2004 by IT-Dozent Ole Vanhoefer · Zum Seitenanfang