linux-l: Load-berechnung

tho at thomsen.isdn.cs.tu-berlin.de tho at thomsen.isdn.cs.tu-berlin.de
Mo Mär 22 13:29:11 CET 1999


In message <Pine.LNX.3.95.990321172022.354C-100000 at first.in-berlin.de>, Oliver 
Bandel writes:
> Hi!
> 
> On Sun, 21 Mar 1999 tho at thomsen.isdn.cs.tu-berlin.de wrote:
> 
> > In message <Pine.LNX.3.95.990320170400.2648A-100000 at first.in-berlin.de>, Ol
> iver
> >  Bandel writes:
> > > Hi!
> > > 
> > > Wie berechnet man den load einer Maschine?
> >  Es ist der Durchschnittswert (letzte Minute/letzten 5, 15 Minuten) der 
> > Anzahl der 'active tasks'. Eine Task (Process, pthread) wird als aktiv 
> > betrachtet, wenn sie entweder auf die CPU wartet ([R]unable), nicht 
> > unterbrechbar im Kernelmode auf ein Ereignis wartet (D) oder am 
> > swappen ist.
> 
> Das kann doch aber nicht einfach die Anzahl der Tasks sein; immerhin
> ist es ja ein Dezimalwert, also ist es wohl irgend ein Verhältnis.
>
_DURCHSCHNITT_ !  Anzahl/Zeiteinheit, wird ungefaehr alle 5 s neu berechnet.

> 
> Was wird denn da ins Verhältnis zueinander gesetzt?
> Gibt's da nicht eine Formel für?
Schau selbst in die Sourcen: kernel/sched.c und include/linux/sched.h
such nach CALC_LOAD

ohne den Fixpunktzauber ist es fuer load-average der letzen Minute
(5s/1m = 1/12) zum Zeitpunkt t:

\[ l_t = \frac{l_{t-1}}{e^{\frac{1}{12}}} 
	+ n_t ( 1 - \frac{1}{e^{\frac{1}{12}}} ) \]

wobei n_t die Anzahl der active tasks zum Zeitpunkt t ist und l_{t-1}
der load-average vor 5 Sekunden.

[..]
> 
> ..eine Formel wäre sehr hilfreich, dann könnte ich mir mal was
> durchrechnen; wollte schon lange mal wieder meine Fähigkeit der
> Kurvendiskussion auffrischen. :-)
 und ich meine TeX Kenntnisse ;-)
 Der load-average ist nur ein Anhaltswert. Er sagt leider eben nicht aus,
wann eine Maschine ueberfordert ist und noch viel weniger, wenn, woran es
liegt. Einige Maschinen sind schon bei einem load-average von 3 dicht (alter
Linux Kernel auf i486) andere laufen noch bei 12 rund (Sun server, SunOS 4.1).

> 
> > 
> >  Wenn die Maschine 'trash't (continuierliches rein- und rausswappen von
> > prozessen, da deren RSS den zur Verfuegung stehenden RAM Speicher ueber-
> > steigt), steigt der load auch (u.U. weit ueber 1). Wobei hier der 
> > Flaschenhals nicht die CPU sondern fehlendes RAM ist.
> 
> Es könnte auch ein überlastetes Netz sein?
 Wenn das dazu fuehrt, das viele Prozesse immer wieder runable sind und sobald
sie die CPU haben gleich wieder abgeben, da ihnen doch noch etwas anderes fehlt,
ja. Habe ich aber nur im Zusammenhang mit NFS gesehen.

Guenther



Mehr Informationen über die Mailingliste linux-l