Was bedeutet Load Average unter Unix / Linux?

68

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 gibt an, dass es sich um den "Lastdurchschnitt des Systems in den letzten 1, 5 und 15 Minuten" handelt. Aber wie ist der Maßstab? Ist 1,27 hoch? Niedrig? Kommt es auf mein System an?

John Fouhy
quelle
2
Ich frage mich, wie der Lastdurchschnitt auf einem Multi-Core-CPU-System interpretiert werden sollte.
Nagul
3
Als allgemeine Faustregel sollten Sie den Lastdurchschnitt durch die Anzahl der CPUs für Multi-Core-Systeme dividieren. Eine Belastung von 2,0 auf einem Dual-Core-System entspricht also in etwa einer Belastung von 1,0 auf einem Single-Core-System. Dies ist aufgrund von Problemen wie Festplatten-I / O und Netzwerk-Traiffic nicht ganz richtig, aber die Auslastung ist sowieso eine Art Schätzung.
Mike Cooper
1
Ich fand diesen Blog wirklich nützlich: Linux-CPU-
Auslastung

Antworten:

59

Der Lastdurchschnitt gibt an, wie viele Prozesse durchschnittlich ausgeführt werden und fordert gleichzeitig die CPU-Aufmerksamkeit.

Wenn ein Prozess zu 100% ausgeführt wird und er für alle Ewigkeit so abläuft, können Sie im Allgemeinen davon ausgehen, dass sich alle Werte '1' nähern.

Im Allgemeinen ist dies so effizient wie möglich, keine Verluste aufgrund von Kontextwechseln.

Bei modernen Multitasking-Betriebssystemen ist jedoch mehr als eine Sache zu beachten, sodass der durchschnittliche Lastwert bei moderater Auslastung durch einen einzelnen Prozess zwischen 0,8 und 2 schwanken sollte.

Wenn Sie sich dazu entschließen, etwas Wahnsinniges zu tun, z. B. einen Kernel mit make -j 60trotz nur eines logischen Prozessors zu erstellen, würde der durchschnittliche Ladezustand auf 60 sinken und Ihr Computer wäre für Sie unglaublich nutzlos (Tod durch Kontextwechsel).

Zu beachten ist 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 ganzen Kern verbraucht (der andere bleibt im Leerlauf), zu einem Lastdurchschnitt von 1,0. Um zu entscheiden, wie stark ein System ausgelastet ist, müssen Sie die Anzahl der Kerne kennen und die Aufteilung selbst vornehmen.

Kent Fredric
quelle
1
Ein Lastdurchschnitt von weniger als 1 bedeutet also "Prozesse müssen in der Regel 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 ich mir auch Sorgen machen muss)
John Fouhy
Ja, das macht Sinn, ignoriert IO das ist;)
Kent Fredric
@KentFredric "Im Allgemeinen ist dies so effizientes Rechnen wie möglich, keine Verluste durch Kontextwechsel." ... Läuft 1 Prozess zu 100% die ganze Zeit über effizient? Ich vermisse hier sicher etwas Grundlegendes. Könnten Sie bitte erklären, was Sie meinten? Ich bin verwirrt darüber, wie ein Prozess, der alle CPU-Ressourcen überlastet, als effizient bezeichnet werden kann.
Geek
2
Ich weiß, dass ein Prozess, der mit 100% ausgeführt wird, nicht sehr "effizient" klingt, aber wenn sich der Prozess willkürlich auf nur 20% beschränkt, würde er 5-mal so lange dauern. Effizienz bedeutet hier also "optimale Ressourcennutzung".
Kent Fredric
1
Für ein System mit n Kernen bedeutet ein Lastdurchschnitt von n, dass jeder Kern 100% der Zeit einen Prozess abwickelt und daher am effizientesten ist.
Joshreesjones
9

Mann 5 Proc:

/ proc / loadavg Bei den ersten drei Feldern in dieser Datei handelt es sich um durchschnittliche Ladezahlen, die die Anzahl der Jobs in der Ausführungswarteschlange (Status R) oder das Warten auf Datenträger-E / A (Status D) im Durchschnitt über 1, 5 und 15 Minuten angeben . Sie sind die gleichen wie die Lastdurchschnittszahlen, die von der Betriebszeit (1) und anderen Programmen angegeben werden.

fho
quelle
3

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

John T
quelle
2
Dieser Link ist datiert '03. Seitdem ist Linux 2.6 erschienen. (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
Hier ist eine vom Ende '06, was sich nicht so sehr vom verlinkten Artikel unterscheidet: linuxjournal.com/article/9001
nagul
Ihr Link funktioniert immer noch und ihre Terminal-Ausgabe stammt aus dem Jahr 2001. Wie großartig
MS Berends
2

Ich zitiere aus einer Referenz eines Kurses:

Lastdurchschnitt ist der Durchschnitt der Lastanzahl für einen bestimmten Zeitraum. Es berücksichtigt Prozesse, die:

  • Läuft aktiv auf einer CPU.
  • Wird als lauffähig angesehen, wartet aber darauf, dass eine CPU verfügbar wird.
  • Sleeping: Warten auf die Verfügbarkeit einer Ressource (normalerweise E / A).

Ich zitiere weiter zur Interpretation des Lastdurchschnitts :

Der Lastdurchschnitt wird anhand von drei verschiedenen Zahlengruppen angezeigt, wie im folgenden Beispiel dargestellt:

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 durchschnittlich zu 25% ausgelastet war. 0,12 in der nächsten Position bedeutet, dass das System in den letzten 5 Minuten durchschnittlich zu 12% ausgelastet war. und 0,15 in der Endposition bedeutet, dass das System in den letzten 15 Minuten durchschnittlich zu 15% ausgelastet war. Wenn wir auf der zweiten Position einen Wert von 1,00 sehen, würde dies bedeuten, dass das Einzel-CPU-System in den letzten 5 Minuten im Durchschnitt zu 100% ausgelastet war. Das ist gut, wenn wir ein System voll ausnutzen wollen. Ein Wert über 1,00 für ein Einzel-CPU-System bedeutet, dass das System überlastet wurde: Es gab mehr Prozesse, die CPU benötigten, als CPU zur Verfügung stand.

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 4,00 (1 Minute), dass das gesamte System in der letzten Minute zu 100% (4,00 / 4) ausgelastet war.

Kurzfristige Erhöhungen sind in der Regel kein Problem. Ein hoher Peak, den Sie sehen, ist wahrscheinlich ein Ausbruch von Aktivität, kein neues Level. Zum Beispiel starten beim Starten viele Prozesse, und dann beruhigt sich die Aktivität. Wenn bei den Lastdurchschnitten von 5 und 15 Minuten ein hoher Spitzenwert zu sehen ist, kann dies Anlass zur Sorge geben.

Ely
quelle
Es wäre praktisch, einen Link zu Ihrer Referenz hinzuzufügen.
Pierz
Das ist schwierig. Es ist ein Online-Kurs der Linux Foundation zur Vorbereitung auf die LFCS-Prüfung.
Ely