Bis vor kurzem dachte ich, dass der Lastdurchschnitt (wie zum Beispiel oben gezeigt) ein gleitender Durchschnitt der n letzten Werte der Anzahl der Prozesse im Zustand "lauffähig" oder "lauffähig" ist. Und n wäre durch die "Länge" des gleitenden Durchschnitts definiert worden: Da der Algorithmus zur Berechnung des Lastdurchschnitts alle 5 Sekunden auszulösen scheint, wäre n 12 für den 1-minütigen Lastdurchschnitt, 12 × 5 für den 5-minütigen Lastdurchschnitt und 12 × 15 für den 15-Minuten-Lastdurchschnitt.
Aber dann habe ich diesen Artikel gelesen: http://www.linuxjournal.com/article/9001 . Der Artikel ist ziemlich alt, aber der gleiche Algorithmus ist heute im Linux-Kernel implementiert. Der Lastdurchschnitt ist kein gleitender Durchschnitt, sondern ein Algorithmus, für den ich keinen Namen kenne. Trotzdem habe ich einen Vergleich zwischen dem Linux-Kernel-Algorithmus und einem gleitenden Durchschnitt für eine imaginäre periodische Last gemacht:
.
Es gibt einen großen Unterschied.
Schließlich sind meine Fragen:
- Warum wurde diese Implementierung im Vergleich zu einem wahren gleitenden Durchschnitt gewählt, der für jedermann eine echte Bedeutung hat?
- Warum jeder von "1min load average" spricht, da viel mehr als die letzte Minute vom Algorithmus berücksichtigt wird. (mathematisch gesehen das ganze Maß seit dem Hochfahren; in der Praxis unter Berücksichtigung des Rundungsfehlers - immer noch viele Maßnahmen)
quelle
Antworten:
Dieser Unterschied geht auf das ursprüngliche Berkeley-Unix zurück und beruht auf der Tatsache, dass der Kernel tatsächlich keinen rollierenden Durchschnitt halten kann. es müsste eine große Anzahl von früheren Lesungen behalten, um dies zu tun, und besonders in den alten Tagen gab es einfach keinen Speicher, der dafür übrig blieb. Der verwendete Algorithmus hat stattdessen den Vorteil, dass der Kernel nur das Ergebnis der vorherigen Berechnung behalten muss.
Denken Sie daran, dass der Algorithmus der Wahrheit ein Stück näher war, als die Computergeschwindigkeiten und die entsprechenden Taktzyklen in zehn MHz anstelle von GHz gemessen wurden. Heutzutage gibt es viel mehr Zeit für Unstimmigkeiten.
quelle
uptime
und gemeldet hatw
, behauptet; Sie mussten sich die Kernelquellen ansehen, um herauszufinden, dass dies nicht der Fall war.1min/5min/15min
haben doch Sinn. Sie bestimmen die Zeit, nach der der Einfluss der aktuellen Last um einen festen Faktor abfällt (wahrscheinlich e = 2,71 .. oder vielleicht 2). Probieren Sie es einfach aus.