Load Average

Die drei Zahlen der "Load" (auch "Load Average") beschreiben die Länge der Run Queue in der letzten 1, 3 und 5 Minuten als exponentiell gewichteten gleitenden Durchschnitt. Die damit einhergehende Glättung vermeidet Ausreißer. Sie soll den Wachstumstrend der Run Queue darstellen und aufgrund ihres Aufbaus nur nur mittelbar zur Bewertung der Systemauslastung geeignet.

Vereinfacht ausgerückt zeigt die Load, wie viele lauffähige Prozesse, dazu zählen auf CPU-Zeit und auf IO wartende Prozesse, sich in der Run Queue befinden und somit auf Abarbeitung warten.

Es gibt keinen 1:1 Zusammenhang zwischen der "Load" und der Systemauslastung. Die "Load" sagt nur, daß eine bestimmte Anzahl von Prozessen in der Vergangenheit auf die Abarbeitung warteten. Sie trifft keine Aussage, in wie weit diese Prozesse die ihnen zur Verfügung gestellte Zeit vollständig genutzt haben oder ob sie ungenutzte Zeit wieder an den Kernel zurückgeben, damit diese Zeit einem weiteren Prozeß zur Verfügung gestellt wird. Die Systemauslastung kann besser über die Metriken "%user", "%system", "%iowait" und "%idle" geurteilt werden. top und sar zeigen diese Metriken an.

Die Aussage, daß ein System zu 100% ausgelastet ist, wenn es pro CPU-Core einen wartenden Prozeß in der Run Queue hat, stimmt aufgrund des soeben beschriebenen lockeren Zusammenhang zwischen Load und Systemauslastung nicht zwangsläufig.

Die Berechnung der drei Load-Werte ist relativ kompliziert und wurde in UNIX Load Average Part 1: How It Works ausführlich beschrieben.

Der Load Average läßt sich mit verschiedenen Kommandos anzeigen:

# cat /proc/loadavg
0.00 0.02 0.00 2/272 17319

# uptime
 09:26:01 up 336 days, 44 min, 20 users,  load average: 0.00, 0.02, 0.00

# top
top - 09:26:07 up 336 days, 44 min, 20 users,  load average: 0.00, 0.02, 0.00
Tasks: 261 total,   1 running, 260 sleeping,   0 stopped,   0 zombie
Cpu(s):  0.1%us,  0.1%sy,  0.0%ni, 99.7%id,  0.0%wa,  0.0%hi,  0.1%si,  0.0%st
Mem:   3395720k total,  3050984k used,   344736k free,   354012k buffers
Swap:  1869132k total,      136k used,  1868996k free,  2226356k cached

  PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND
    1 root      15   0 10368  764  640 S  0.0  0.0   0:12.88 init
    2 root      RT  -5     0    0    0 S  0.0  0.0   0:00.00 migration/0

Weiterführende Informationen

/proc/loadavg

proc/loadavg

Leistungsdiagnostik - Load Average enträtselt und erweitert
Der Artikel beschreibt die Bedeutung der 3 Load-Zahlen und deren Hintergrund detailiert.
Linux-Magazin 2007/08 Seite 84 ff.
UNIX Load Average Part 1: How It Works

http://www.teamquest.com/pdfs/whitepaper/ldavg1.pdf

UNIX Load Average Part 2: Not Your Average Average

http://www.teamquest.com/pdfs/whitepaper/ldavg2.pdf

LoadAverage (zuletzt geändert am 2014-10-22 18:08:56 durch p54B3BA35)