Lastdurchschnitt auf Linux verstehen

Lastdurchschnitt auf Linux verstehen
Der Lastdurchschnitt ist eine Messung der Arbeitsmenge gegenüber freien CPU -Zyklen, die auf einem Systemprozessor verfügbar sind. In diesem Artikel werde ich den Begriff definieren, wie Linux diesen Wert berechnet und dann Einblick in die Interpretation der Systemlast geben.

Verschiedene Methoden zur Berechnung der Last

Bevor wir in Linux -Lastdurchschnitte eintauchen, müssen wir untersuchen, wie unterschiedlich die Last berechnet wird, und die häufigste Messung der CPU -Last organisieren - ein Prozentsatz.

Windows berechnet Last anders als Linux, und da Windows auf dem Desktop historisch beliebter war. Die meisten Windows -Benutzer haben die Last des Systems im Task -Manager als Prozentsatz von 0% bis 100% gesehen.

In Windows wird dies abgeleitet, indem untersucht wird, wie „beschäftigt“ die Systemleerlaufprozess IS und verwenden die Inverse, um die Systembelastung darzustellen. Wenn beispielsweise der Leerlauf -Thread 99% der Zeit ausführt, wäre die CPU -Last in Windows 1% betragen. Dieser Wert ist leicht zu verstehen, liefert jedoch weniger insgesamt Details zum wahren Status des Systems.

In Linux wird der Lastdurchschnitt stattdessen durch eine Dezimalzahl ab 0 dargestellt.00. Der Wert kann grob als die Anzahl der Prozesse in der vergangenen Minute definiert werden, die auf die Ausführung warten mussten. Im Gegensatz zu Windows ist der Linux -Lastdurchschnitt keine sofortige Messung. Die Last wird in drei Werten angegeben - im Einminü nach Durchschnitt, der fünfminütige Durchschnitt und der fünfzehn Minuten Durchschnitt.

Lastdurchschnitt verstehen unter Linux

Diese zusätzliche Detailebene scheint zunächst unnötig zu sein, wenn Sie nur den aktuellen Stand der CPU -Last in Ihrem System kennenlernen möchten. Da jedoch die Durchschnittswerte von drei Zeiträumen und nicht eine sofortige Messung angegeben sind, können Sie in einem einzigen Blick von drei Zahlen eine umfassendere Vorstellung von der Änderung der Systemlast im Laufe der Zeit erhalten

Das Anzeigen des Lastdurchschnitts ist einfach. In der Befehlszeile können Sie eine Vielzahl von Befehlen verwenden. Ich benutze einfach den Befehl "w":

root@virgo [~]# w
21:08:43 Uhr 38 Tage, 4:34, 4 Benutzer, Lastdurchschnitt: 3.11, 2.75, 2.70

Der Rest des Befehls zeigt an, wer angemeldet ist und was sie ausführen, aber für unsere Zwecke ist diese Informationen irrelevant, sodass ich ihn aus der obigen Anzeige abgeschnitten habe.

In einem idealen System sollte kein Prozess durch einen anderen Prozess (oder Thread) aufbewahrt werden, aber in einem einzigen Prozessorsystem, Dies geschieht, wenn die Last über 1 geht.00.

Die Wörter „einzelnes Prozessorsystem“ sind hier unglaublich wichtig. Wenn Sie keinen alten Computer ausführen, verfügt Ihr Computer wahrscheinlich mehrere CPU -Kerne. In der Maschine, auf der ich bin, habe ich 16 Kerne:

root@virgo [~]# nproc
16

In diesem Fall ein Lastdurchschnitt von 3.11 ist überhaupt nicht alarmierend. Es bedeutet einfach, dass etwas mehr als drei Prozesse zur Ausführung bereit waren und CPU -Kerne vorhanden waren, um ihre Ausführung zu bewältigen. Bei diesem speziellen System müsste die Last 16 erreichen, um bei „100%“ berücksichtigt zu werden.

Um dies auf eine prozentuale Systemlast zu übersetzen, können Sie diesen einfachen, wenn nicht stumpfen Befehl verwenden:

Katze /Proc /Loadavg | Cut -c 1-4 | echo "scale = 2; ($ ($ (

Diese Befehlssequenzen isolieren den 1-minütigen Durchschnitt über Schnitt und wiederholt ihn, geteilt durch die Anzahl der CPU-Kerne über BC, einen Befehlszellenrechner, um den Prozentsatz abzuleiten.

Dieser Wert ist keineswegs wissenschaftlich, bietet aber eine grobe Annäherung an die CPU -Belastung in Prozent.

Eine Minute zu lernen, ein Leben lang zu meistern

Im vorherigen Abschnitt habe ich das „100%“ -Beispiel einer Last von 16 angelegt.0 auf einem 16 -CPU -Kernsystem in Anführungszeichen, weil die Berechnung der Last unter Linux etwas nebulöser ist als Windows. Der Systemadministrator muss berücksichtigen:

  • Die Last wird in Warteprozessen und Fäden ausgedrückt
  • Es ist kein sofortiger Wert, eher ein Durchschnitt und
  • Die Interpretation muss die Anzahl der CPU -Kerne enthalten und
  • Möge I/O-Wartezeiten über infließen, wie die Festplatte liest

Aus diesem Grund ist es nicht ganz eine empirische Angelegenheit. Auch wenn dies der Fall war, ist die CPU -Last allein keine angemessene Messung der Auslastung der Gesamtsystemressourcen. Ein erfahrener Linux -Administrator berücksichtigt daher die CPU -Last in Verbindung mit anderen Werten wie E/A -Wartezeit und dem Prozentsatz des Kernels und der Systemzeit.

Ich warte

E/A -Warten ist am leichtesten über den Befehl "Top" zu sehen:

Im obigen Screenshot habe ich den E/A -Wartewartwert hervorgehoben. Dies ist ein Prozentsatz der Zeit, in der die CPU auf Eingabe- oder Ausgabebefehle wartete, um sie zu vervollständigen. Dies weist normalerweise auf eine hohe Festplattenaktivität hin. Während ein hoher Wartezeitprozent allein die CPU-gebundenen Aufgaben nicht wesentlich beeinträchtigen, verringert er die E/A-Leistung für andere Aufgaben und sorgt dafür, dass sich das System träge fühlt.

Hohe E/A -Wartezeit ohne offensichtliche Ursache könnte ein Problem mit einer Festplatte anzeigen. Verwenden Sie den Befehl „DMESG“, um festzustellen, ob Fehler aufgetreten sind.

Kernel vs. Systemzeit

Die oben genannten hervorgehobenen Werte repräsentieren die Zeit der Benutzer und Kernel (System). Dies ist eine Aufschlüsselung des Gesamtverbrauchs der CPU -Zeit durch Benutzer (i.e. Anwendungen usw.) und der Kernel (ich.e. Interaktion mit Systemgeräten). Eine höhere Benutzerzeit zeigt mehr CPU-Verwendung nach Programmen, bei denen eine höhere Kernelzeit auf mehr Verarbeitung auf Systemebene hinweist.

Eine ziemlich durchschnittliche Last

Das Erlernen der Beziehung des Lastdurchschnitts zur tatsächlichen Systemleistung braucht Zeit, aber bald werden Sie eine deutliche Korrelation sehen. Mit den Feinheiten der Systemleistungsmetriken ausgestattet, können Sie bessere Entscheidungen über Hardware -Upgrades und Programmressourcenauslastung treffen.