Was ist die Systemlast?

13

In meinem Job haben wir ein Datenrepository, auf dem Ubuntu 12.04.03 CLI ausgeführt wird, und als ich sie heute Morgen beim Anmelden überprüfte, anstatt mir die normalen Informationen zu geben, wurde gemeldet, dass die Informationen nicht angezeigt werden konnten, da die Systemlast über 2 und 2 liegt Ich habe mich gefragt, was das bedeutet? Ich hatte es gerade neu gestartet, weil es nicht reagierte. Hat es etwas mit dem Prozess des Startens und Startens zu tun?

Sean G
quelle

Antworten:

17

Führen Sie die Befehle topoder aus uptime:

$ uptime
 19:36:03 up 5 days,  9:12,  8 users,  load average: 0.05, 0.16, 0.21
$ top -bn1 | head -1
top - 19:36:07 up 5 days,  9:13,  8 users,  load average: 0.05, 0.16, 0.21

Die hier angegebenen Lastdurchschnitte sind :

/proc/loadavg
          The  first  three  fields  in this file are load average figures
          giving the number of jobs in the run queue (state R) or  waiting
          for disk I/O (state D) averaged over 1, 5, and 15 minutes.  They
          are the same as the load average numbers given by uptime(1)  and
          other  programs. 

Betrachten Sie meine Last-Durchschnittswerte: 0.05, 0.16, 0.21
Das bedeutet, dass in der letzten Minute durchschnittlich 0,05 Prozesse auf Ressourcen gewartet haben.

Sollten Sie sich Sorgen machen, dass der Lastdurchschnitt 2 beträgt? Wenn der Lastdurchschnitt größer als die Anzahl der verfügbaren CPUs ist, musste im Allgemeinen ein Prozess im Leerlauf auf einen CPU-Steckplatz warten.

Wenn der Lastdurchschnitt unter dem Output von liegt nproc, müssen Sie sich keine Sorgen machen.

Siehe auch: Was bedeutet Load Average unter Unix / Linux? Wie Braiam bemerkt, müssen die Prozesse nicht nur auf die CPU warten: Grundlegendes zur durchschnittlichen Auslastung im Vergleich zur CPU- Auslastung

muru
quelle
Das ist sehr hilfreich, aber sollte es gleich nach dem Neustart so heiß laufen, wenn man bedenkt, dass wir das noch nicht gesehen haben? Auf dem AMD Athlon 64 X2 Dual Core Processor 4200+ werden keine Grafiken oder zusätzlichen Prozesse ausgeführt.
Sean G
@SeanG könnte es, je nachdem was es sonst noch läuft. Es könnte eine einmalige Veranstaltung sein. Wenn dies wiederholt vorkommt, verwenden Sie so etwas wie ein Bootchart, um zu sehen, was beim Booten passiert.
muru
"Das bedeutet, dass in der letzten Minute durchschnittlich 0,05 Prozesse auf die CPU gewartet haben." Tatsächlich ist dies unvollständig. Die Ressource kann eine beliebige Hardware sein, nicht nur eine CPU. Es könnte Festplatte, Netzwerk, GPU usw. sein
Braiam
@Braiam true (Ich habe die Aussage zu vereinfacht). Ich bin auf dieses q gestoßen, während ich googelt habe, habe aber nicht daran gedacht, es einzuschließen.
muru
Unmittelbar nach dem Neustart kann der Lastdurchschnitt tatsächlich hoch sein, da das System gerade die intensive Initialisierungssequenz durchlaufen hat. Wie in der Antwort erläutert, dauert es einige Minuten, bis sich die Zahlen normalisiert haben. Überfällige Anacron-Jobs können den Zeitraum verlängern.
Emil Jeřábek unterstützt Monica
7

Systemlast oder Systemlast-Durchschnitt

Es ist eine Run-Queue, dh eine Warteschlange von Prozessen, die darauf warten, dass eine Ressource (CPU, E / A usw.) verfügbar wird.

Betrachten Sie einen Single-Core cpuals eine einzelne Fahrspur mit Bridge und Process als Autos.

Nun ist in dieser Situation die Systemlast

  • 0.0 - Wenn kein Verkehr auf der Straße ist.
  • 1.0 -Wenn der Verkehr auf der Straße ist genau die Kapazität der Brücke.
  • Mehr als 1 - Wenn der Straßenverkehr die Kapazität der Brücke übersteigt und die Autos warten müssen, bis sie die Brücke passieren.

Diese Nummer ist nicht gemäß Ihren Angaben normalisiert cpu. Im Multiprozessorsystem bedeutet Last 2 100% Auslastung des Dual-Core-Prozessors, Last 4 100% Auslastung des Quad-Core-Prozessors.

Sie können Ihre Systemlast mit erhalten

  • uptime
  • cat /proc/loadavg
  • top

    $ Uptime 22:49:47 bis 11:47, 4 Benutzer, Lastdurchschnitt: 2.20, 1.03, 0.82

Hier die letzten drei Zahlen, die den Durchschnitt der Systemlast für 1, 5 bzw. 15 Minuten darstellen.

Das obige Beispiel zeigt, dass im Durchschnitt in der letzten Minute 2,20 Prozesse darauf warteten, in der Ausführungswarteschlange eingeplant zu werden.

g_p
quelle
Dies erklärt nicht, was der Lastdurchschnitt ist.
Braiam
fügte es in der Antwort hinzu.
g_p
2

Die Systemlast ist relevant für die Anzahl der CPU-Kerne. Wenn Sie beispielsweise eine Vierkern-CPU (4 Kerne) haben, bedeutet der Wert 1, dass die Systemlast 25% und 4 100% beträgt.

Ghassen Telmoudi
quelle
Dies erklärt nicht, was Lastdurchschnitt ist, und ist falsch in Bezug auf die Beziehung zwischen CPU-Zeit in% und Lastdurchschnitt.
Braiam
0

Wenn Sie die Betriebszeit des Terminals eingeben , wird Folgendes angezeigt : Durchschnitt laden und drei Ziffernspalten, die von einer, fünf und fünfzehn Minuten geladen werden. Wenn Sie einen Dual-Core-Prozessor haben, bedeutet 2 100% Auslastung, 1 bedeutet 50% usw.

EdiD
quelle
Dies erklärt nicht, was Lastdurchschnitt ist, und ist falsch in Bezug auf die Beziehung zwischen CPU-Zeit in% und Lastdurchschnitt.
Braiam
1
Ja tut es. Manuelle Verfügbarkeit: Load Average von 1 bedeutet, dass ein einzelnes CPU-System die ganze Zeit geladen ist, während es auf einem 4-CPU-System bedeutet, dass es 75% der Zeit inaktiv war.
EdiD
Es gibt keine Beziehung zwischen CPU-Auslastung und Auslastungsdurchschnitt. Nochmal Überprüfen.
Braiam
0

Eine Systemlast von 2.0 ist nicht sehr hoch. Auf einem Multi-Core-System ist Ihre CPU möglicherweise noch teilweise im Leerlauf.

Ein Lastdurchschnitt ist ein Maß dafür, wie überlastet ein CPU-Kern in Bezug auf die Anzahl der Prozesse ist, die ihn gleichzeitig verwenden möchten.

Im Folgenden wird eine Single-Core-CPU (Single-Thread-CPU) angenommen:

  • 0.0

    Die CPU macht überhaupt nichts. Wenn ein Prozess anfangen würde, die CPU zu verwenden, dann wäre dies der einzige, der sie verwendet.

  • 1,0

    Die CPU ist maximal ausgelastet, es gibt jedoch keine Konflikte zwischen Prozessen zur Nutzung der CPU. Das heißt, es wird nur ein einziger Prozess ausgeführt, sodass 100% der CPU-Zeit für sich beansprucht werden können. Alternativ werden mehrere Prozesse ausgeführt, aber keiner beansprucht 100% CPU und die kombinierte CPU-Auslastung summiert sich auf 100%. Sie laufen alle immer noch so schnell, wie sie laufen würden, selbst wenn sie die CPU vollständig für sich hätten.

  • Größer als 1,0

    Die CPU ist maximal ausgelastet, und es gibt mehrere Prozesse, die sie gleichzeitig verwenden möchten, sodass sie langsamer ausgeführt werden, als dies sonst möglich wäre, wenn sie ausschließlich die CPU verwenden würden. Ein Lastdurchschnitt von 3,0 gibt beispielsweise an, dass Prozesse mit einem Drittel der Geschwindigkeit ausgeführt werden, die sie ausführen möchten. Ein Lastdurchschnitt von 50,0 gibt an, dass Prozesse mit 1/50 der Geschwindigkeit ausgeführt werden, die sie ausführen möchten, da alle anderen Prozesse ausgeführt werden. Das heißt, höhere Werte als 1,0 weisen darauf hin, dass die verfügbare CPU auf immer mehr aktive Prozesse aufgeteilt wird.

Bei einer Mehrkern-CPU ändert sich nicht die Bedeutung der Zahlen, sondern ihre Interpretation. Wenn Sie beispielsweise eine 4-Kern-CPU haben, entspricht eine Last von 1,0 immer noch einem Prozess mit 100% CPU auf einem Kern, aber es gibt drei andere Kerne. Auf einer 4-Kern-CPU ist der Punkt maximaler Effizienz also 4,0 und nicht 1,0 - und der Punkt, an dem alles mit 1/3 Effizienz läuft, ist 12,0 und nicht 3,0. Um die Komplexität zu erhöhen, kann ein einzelner Prozess mehr als einen Thread haben, von dem jeder seine eigene CPU beansprucht. Ein einzelner Prozess kann also 100% aller 4 Kerne verwenden, wenn er mehrere Threads hat.

thomasrutter
quelle