"load average"

18/04/2008 - 15:01 von Rudolf E. Steiner | Report spam
Gugug.

Meinem Verstaendnis/Wissen nach gibt "load average" unter Linux die
Anzal der Threads bekannt, welche im Moment auf ihre Abarbeitung
warten.

Das passt auch gut zusammen, wenn ich auf einem System zwei Prozesse
laufen habe, die kein/wenig I/O benoetigen, gibt "load average" schoen
"2" von sich.

Es ist auch schoen zu beobachten, wie zB ein Kopiervorgang das "load
average" in die Hoehe treibt, obwohl die Prozessoren sehr schwach
ausgenutzt sind. Das sollte darauf zurueckzufuehren sein, dass durch
die starke I/O-Last einige IRQ's Wartezeiten verursachen, auf die die
Threads/Prozessoren warten muessen.

Nun habe ich einige Systeme am Laufen, bei denen ein nicht
speicherintensiver Prozess, der sich eigentlich fast nur dem TCP-Stack
von Linux bedient, ein "load average" von zB "3" zeigt, die
Prozessoren aber immer unter zB 5 % belegt sind.

Ich nehme an, dass solch ein Umstand nur dann entstehen kann, wenn die
Threads bzw. die Prozessoren auf etwas warten muessen. Nur wie kann
ich feststellen, auf was da gewartet wird? Wenn es der TCP-Stack
selbst sein sollte, oder das Kernelmodul fuer den
Netzwerkkartentreiber, muesste ich doch auch die Prozessorlast als
Systemlast, statt als Anwendungslast (im "top") sehen. Damit kann es,
diesem Verstaendnis nach, nur noch die Hardware sein, dass zB die
Netzwerkkarte IRQ's belegt und Wartezeiten verursacht.

Nur ... wie ist das feststellbar/messbar?

Ich wuerde mit dieser Frage gerne zum Schluss kommen, wie sehr das
System nun wirklich belastet ist, ob es also schon an der Grenze der
Ueberforderung ist, oder ob ich auf den "load average"-Wert pfeiffen
kann. Falls Ersteres der Fall ist, koennte ich moeglicherweise den
Grund finden und diesen zB durch bessere Hardware (zB bessere
Netzwerkkarten) ausschalten.

Ich will dabei noch anmerken, dass es sich um SMB-Systeme handelt, ich
habe mit der Software unter Systemen mit einem Prozessor keine
Erfahrung (falls das einen Unterschied in der Diagnose machen sollte).

Vielen Dank schon jetzt fuer Eure Ideen/Hilfe.

Rudolf E. Steiner
res-1@communicate.at
 

Lesen sie die antworten

#1 Dietrich Schaffer
18/04/2008 - 15:55 | Warnen spam
Rudolf E. Steiner wrote:
Gugug.

Meinem Verstaendnis/Wissen nach gibt "load average" unter Linux die
Anzal der Threads bekannt, welche im Moment auf ihre Abarbeitung
warten.



,-[ http://wiki.linuxquestions.org/ ]
| load average is a measure used to tell how busy the CPU is. load
| average show the average number of processes waiting for execution.
| Usually there are three numbers presented where the first show
| average last minute, second average for last five minutes and the third
| show average load for the last fifteen minutes.
`-

HTH + Servus,
Dietrich

Ähnliche fragen