Was bedeutet der Lastdurchschnitt unter Unix / Linux?

59313
John Fouhy

Wenn ich renne uptime, bekomme ich so etwas:

10:50:30 up 366 days, 23:27, 1 user, load average: 1.27, 2.06, 1.54 

Was bedeuten diese Zahlen am Ende? Die Manpage sagt mir, es sei "der Lastdurchschnitt des Systems in den letzten 1, 5 und 15 Minuten." Aber wie ist die Skala? Ist 1,27 hoch? Niedrig? Hängt es von meinem System ab?

66
Ich frage mich, wie der Lastdurchschnitt auf einem Multi-Core-CPU-System interpretiert werden sollte. nagul vor 14 Jahren 2
Als Faustregel gilt: Teilen Sie den Lastdurchschnitt durch die Anzahl der CPUs für Multicore-Systeme. Eine Last von 2,0 bei einem Dual-Core-System entspricht also ungefähr 1,0 bei einem Single-Core-System. Dies ist aufgrund von Festplatten-E / A und Netzwerktraktoren nicht ganz richtig, aber die Last ist sowieso eine rationale Schätzung. Mike Cooper vor 11 Jahren 3
Ich fand dieses Blog wirklich nützlich: [Informationen zur CPU-Last von Linux] (http://blog.scoutapp.com/articles/2009/07/31/understanding-load-averages) atmaish vor 9 Jahren 1

4 Antworten auf die Frage

57
Kent Fredric

Der Lastdurchschnitt ist ein Maß für die Anzahl der durchschnittlich durchgeführten Prozesse, die gleichzeitig die Aufmerksamkeit der CPU erfordern.

Wenn Sie einen Prozess zu 100% ausführen und dieser Prozess für alle Ewigkeit so ist, können Sie generell erwarten, dass sich alle Werte an '1' annähern.

Im Allgemeinen ist dies so effizient, wie Sie können, keine Verluste durch Kontextwechsel.

Bei modernen Multitasking-Betriebssystemen ist jedoch mehr als eine Sache erforderlich, die CPU-Aufmerksamkeit erfordert. Unter moderaten Lasten eines einzelnen Prozesses sollte der durchschnittliche Lastwert zwischen 0,8 und 2 liegen.

Wenn Sie sich für etwas Wahnsinniges entscheiden, beispielsweise einen Kernel mit make -j 60einem logischen Prozessor aufbauen, würde der durchschnittliche Lastwert auf 60 steigen, und Ihr Computer wäre für Sie unglaublich nutzlos (Tod durch Kontextwechsel).

Beachten Sie auch, dass diese Metrik unabhängig von der Anzahl der Kerne / CPUs ist. Bei einem System mit zwei Kernen führt die Ausführung eines Prozesses, der einen gesamten Kern beansprucht (den anderen inaktiv), zu einem durchschnittlichen Lastwert von 1,0. Um zu entscheiden, wie ausgelastet ein System ist, müssen Sie die Anzahl der Kerne kennen und die Division selbst durchführen.

Ein Lastdurchschnitt von weniger als 1 bedeutet also "Prozesse müssen normalerweise nie warten"? Kann ich einen Lastdurchschnitt von 2 als "Jeder Prozess dauert ungefähr doppelt so lange wie unter idealen Bedingungen" interpretieren? (Ich weiß, dass es auch I / O gibt, um die man sich Sorgen machen muss) John Fouhy vor 14 Jahren 1
Ja, das macht Sinn, ignoriert IO, das ist;) Kent Fredric vor 14 Jahren 0
@KentFredric "Im Allgemeinen ist dies so effizient wie möglich, keine Verluste durch Kontextumschaltungen." ... läuft ein Prozess, der zu 100% ständig effizient ist? Sicher fehlt mir hier etwas Grundsätzliches. Könnten Sie bitte erklären, was Sie meinen? Ich bin verwirrt, wie kann ein Prozess, der alle CPU-Ressourcen beansprucht, als effizient bezeichnet werden? Geek vor 10 Jahren 0
@Geek Da der Kontextwechsel (das Wechseln zwischen Prozessen) nicht "frei" ist, werden zwei Prozesse auf einer CPU, die jeweils zu 50% laufen, durch den Kontextwechsel etwas an Effizienz verlieren. Das bedeutet, dass ein Prozess bei 100% bedeutet, dass der Prozess so schnell wie möglich im Prozess der Erledigung seiner Aufgabe abgeschlossen wird und kein zusätzlicher Aufwand als die Erledigung der Aufgabe selbst verschwendet wird. Kent Fredric vor 10 Jahren 0
Ich weiß, dass ein Prozess, der zu 100% läuft, nicht sehr "effizient" klingt, aber wenn sich der Prozess willkürlich auf 20% beschränkt, würde er fünfmal so lange dauern. Effizienz bedeutet hier "optimale Ressourcennutzung". Kent Fredric vor 10 Jahren 2
Für ein n-Kern-System bedeutet ein Lastdurchschnitt von n, dass jeder Kern einen Prozess zu 100% abwickelt und daher am effizientesten ist. joshreesjones vor 9 Jahren 1
9
fho

mann 5 proc:

/ proc / loadavg Die ersten drei Felder in dieser Datei sind Durchschnittswerte für die Last, die die Anzahl der Jobs in der Laufwarteschlange (Status R) angeben oder auf Festplatten-E / A (Status D) warten, deren Durchschnitt über 1, 5 und 15 Minuten liegt . Sie sind die gleichen wie die durchschnittliche Betriebslast der Betriebszeit (1) und anderer Programme.

3
John T

Im Allgemeinen wird die Anzahl der aktiven Prozesse zu einem bestimmten Zeitpunkt gemessen. Die zur Berechnung verwendeten Metriken unterscheiden sich jedoch in einigen Systemen. Der einzige Artikel, den ich gefunden habe und der es ziemlich gut erklärt, ist dieser .

Dieser Link ist '03 datiert. Linux 2.6 kam seitdem heraus. (Sie werden feststellen, dass sie 2.0 verwenden, Autsch.) Die Metriken scheinen in der Praxis etwas anders zu sein als die auf dieser Seite angegebenen. Kent Fredric vor 14 Jahren 2
Hier ist eine von Ende 2006, die sich nicht sehr von dem verlinkten Artikel unterscheidet: http://www.linuxjournal.com/article/9001 nagul vor 14 Jahren 0
2
Ely

Ich zitiere aus einer Referenz eines Kurses:

Lastdurchschnitt ist der Durchschnitt der Lastnummer für einen bestimmten Zeitraum. Dabei werden folgende Prozesse berücksichtigt:

  • Läuft aktiv auf einer CPU.
  • Wird als lauffähig betrachtet, wartet jedoch darauf, dass eine CPU verfügbar wird.
  • Sleeping: dh warten, bis eine Ressource (normalerweise E / A) verfügbar ist.

Ich zitiere weiter über das Interpretieren des Lastdurchschnitts :

Der durchschnittliche Lastwert wird mit drei verschiedenen Zahlengruppen angezeigt (siehe folgendes Beispiel):

Die letzte Information ist die durchschnittliche Belastung des Systems. Unter der Annahme, dass unser System ein Einzel-CPU-System ist, bedeutet 0,25, dass das System in der letzten Minute im Durchschnitt zu 25% ausgelastet wurde. 0,12 in der nächsten Position bedeutet, dass das System in den letzten 5 Minuten im Durchschnitt zu 12% ausgelastet war; und 0,15 in der Endposition bedeutet, dass das System in den letzten 15 Minuten im Durchschnitt zu 15% ausgelastet wurde. Wenn wir in der zweiten Position einen Wert von 1,00 sehen würden, würde dies bedeuten, dass das Einzel-CPU-System im Durchschnitt der letzten 5 Minuten zu 100% ausgelastet war. Das ist gut, wenn wir ein System vollständig nutzen wollen. Ein Wert über 1,00 für ein Einzel-CPU-System bedeutet, dass das System überlastet war: Es gab mehr Prozesse, für die eine CPU erforderlich war, als für die CPU verfügbar war.

Wenn wir mehr als eine CPU hätten, zum Beispiel ein Quad-CPU-System, würden wir die durchschnittlichen Lastzahlen durch die Anzahl der CPUs dividieren. In diesem Fall bedeutet beispielsweise ein Lastdurchschnitt von 1 Minute von 4,00, dass das gesamte System zu 100% (4.00 / 4) während der letzten Minute genutzt wurde.

Kurzfristige Anstiege sind in der Regel kein Problem. Ein hoher Gipfel, den Sie sehen, ist wahrscheinlich ein Ausbruch von Aktivitäten und kein neuer Level. Zum Beispiel werden beim Start viele Prozesse gestartet und die Aktivität beruhigt sich dann. Wenn in den Lastdurchschnitten von 5 und 15 Minuten ein hoher Peak zu sehen ist, könnte dies Anlass zur Sorge geben.

Es wäre praktisch, einen Link zu Ihrer Referenz hinzuzufügen. Pierz vor 7 Jahren 0
Das ist schwierig. Es ist ein Online-Kurs der Linux Foundation, um sich auf die LFCS-Prüfung vorzubereiten. Ely vor 7 Jahren 0