Last (Computerwissenschaft)

In der UNIX-Computerwissenschaft ist die Systemlast ein Maß des Betrags der Arbeit, die ein Computersystem durchführt. Der Lastdurchschnitt vertritt die durchschnittliche Systemlast über eine Zeitdauer von der Zeit. Es erscheint herkömmlich in der Form von drei Zahlen, die die Systemlast während der letzten - fünf - und fünfzehnminutige Perioden vertreten.

Unix-artige Lastberechnung

Der ganze Unix und Unix ähnliche Systeme erzeugen eine metrische von drei "" Durchschnitt-Lastzahlen im Kern. Benutzer können den Strom leicht fragen ergeben sich aus einer Schale von Unix durch das Laufen des Befehls:

$-Betriebszeit

14:34:03 Uhr 10:43, 4 Benutzer, lädt Durchschnitt: 0.06, 0.11, 0.09

Und Befehle zeigen dieselben drei Lastdurchschnitt-Zahlen, wie eine Reihe von grafischen Benutzerschnittstelle-Dienstprogrammen tun. In Linux kann auf sie auch zugegriffen werden, indem sie die Datei lesen.

Ein müßiger Computer hat eine Lastzahl 0 und jedes Prozess-Verwenden, oder das Warten für die Zentraleinheit (die bereite Warteschlange oder geführte Warteschlange) erhöht die Lastzahl durch 1. Die meisten UNIX Systeme zählen nur Prozesse im Laufen (auf der Zentraleinheit) oder runnable auf (auf die Zentraleinheit wartend), Staaten. Jedoch schließt Linux auch Prozesse in unterbrechungsfreie Schlaf-Staaten ein (gewöhnlich auf die Plattentätigkeit wartend), der zu deutlich verschiedenen Ergebnissen führen kann, wenn viele Prozesse blockiert in der Eingabe/Ausgabe wegen eines beschäftigten oder eingestellten Eingabe/Ausgabe-Systems bleiben. Das schließt zum Beispiel Prozesse ein, die wegen eines NFS Server-Misserfolgs blockieren oder Medien (z.B, Speichergeräte des USB 1.x) zu verlangsamen. Solche Verhältnisse können auf einen Hochlastdurchschnitt hinauslaufen, der keine wirkliche Zunahme im Zentraleinheitsgebrauch widerspiegelt (aber gibt noch eine Idee darauf, wie lange Benutzer warten müssen).

Systeme berechnen den Lastdurchschnitt als der exponential gedämpfte/belastete bewegende Durchschnitt der Lastzahl. Die drei Werte des Lastdurchschnitts beziehen sich auf den vorigen, fünf, und fünfzehn Minuten der Systemoperation.

Für Systeme der einzelnen Zentraleinheit, die gebundene Zentraleinheit sind, kann man an Lastdurchschnitt als ein Prozentsatz der Systemanwendung während des jeweiligen Zeitabschnitts denken. Für Systeme mit vielfachen Zentraleinheiten muss man die Zahl durch die Zahl von Verarbeitern teilen, um einen vergleichbaren Prozentsatz zu bekommen.

Zum Beispiel kann man einen Lastdurchschnitt "1.73 0.50 7.98" auf einem System der einzelnen Zentraleinheit als interpretieren:

  • während der letzten Minute wurde die Zentraleinheit durch 73 % überladen (1 Zentraleinheit mit 1.73 Runnable-Prozessen, so dass 0.73 Prozesse auf eine Umdrehung warten mussten)
  • während der letzten 5 Minuten war die Zentraleinheit underloaded 50 % (keine Prozesse mussten auf eine Umdrehung warten)
  • während der letzten 15 Minuten wurde die Zentraleinheit 698 % überladen (1 Zentraleinheit mit 7.98 Runnable-Prozessen, so dass 6.98 Prozesse auf eine Umdrehung warten mussten)

Das bedeutet, dass diese Zentraleinheit die ganze für die letzte Minute vorgesehene Arbeit behandelt haben könnte, wenn es 1.73mal so schnell war, oder wenn es zwei (die Decke 1.73) Zeiten als viele Zentraleinheiten gab, aber dass im Laufe der letzten fünf Minuten es zweimal so schnell wie notwendig war, Runnable-Prozesse davon abzuhalten, ihre bis man an die Reihe kommt zu warten.

In einem System mit vier Zentraleinheiten würde ein Lastdurchschnitt 3.73 anzeigen, dass es, durchschnittlich, 3.73 Prozesse gab, die bereit sind zu laufen, und jeder in eine Zentraleinheit auf dem Plan stehen konnte.

Auf modernen UNIX Systemen ändert sich die Behandlung des Einfädelns in Bezug auf Lastdurchschnitte. Einige Systeme behandeln Fäden als Prozesse zu den Zwecken der Lastdurchschnitt-Berechnung: Jeder Faden, der wartet, um zu laufen, wird 1 zur Last beitragen. Jedoch verwenden andere Systeme, besonders Systeme, die so genannt durchführen, verschiedene Strategien, wie das Zählen des Prozesses genau einmal zum Zweck der Last (unabhängig von der Zahl von Fäden), oder das Zählen fädelt nur zurzeit ausgestellt durch den Benutzerfaden-Planer zum Kern ein, der vom Niveau des Parallelitätssatzes auf dem Prozess abhängen kann.

Viele Systeme erzeugen den Lastdurchschnitt durch die Stichprobenerhebung des Staates des Planers regelmäßig, anstatt mit allen sachdienlichen Planer-Ereignissen wiederzurechnen. Sie nehmen diese Annäherung aus Leistungsgründen an, weil Planer-Ereignisse oft, und Planer-Leistungsfähigkeitseinflüsse bedeutsam auf die Systemleistungsfähigkeit vorkommen. Infolgedessen kann Stichprobenfehler führen, um Durchschnitte zu laden, die ungenau wirkliches Systemverhalten vertreten. Das kann ein besonderes Problem für Programme aufwerfen, die an einem festen Zwischenraum aufwachen, der sich auf die lastdurchschnittliche Stichprobenerhebung ausrichtet, in welchem Fall ein Prozess unter - oder übervertreten in den Lastdurchschnitt-Zahlen sein kann.

Zentraleinheitslast gegen die Zentraleinheitsanwendung

Die vergleichende Studie von verschiedenen Lastindizes von Ferrari ausgeführt u. a. berichtet, dass auf der Zentraleinheitswarteschlange-Länge gestützte Zentraleinheitslastinformation viel besser in der Last tut, die im Vergleich zur Zentraleinheitsanwendung balanciert. Der Grund, den Zentraleinheitswarteschlange-Länge besser getan hat, besteht wahrscheinlich darin, weil, wenn ein Gastgeber schwer geladen wird, seine Zentraleinheitsanwendung wahrscheinlich 100 % nah sein wird und es unfähig ist, das genaue Lastniveau der Anwendung zu widerspiegeln. Im Gegensatz können Zentraleinheitswarteschlange-Längen den Betrag der Last auf einer Zentraleinheit direkt widerspiegeln. Als ein Beispiel werden zwei Systeme, ein mit 3 und anderer mit 6 Prozessen in der Warteschlange, wahrscheinlich Anwendungen in der Nähe von 100 % haben, obwohl sie sich offensichtlich unterscheiden.

Das Rechnen der Zentraleinheitslast

Auf Linux Systemen wird der Lastdurchschnitt auf jeder Uhr-Zecke nicht berechnet, aber durch einen variablen Wert gesteuert, der auf der HZ-Frequenzeinstellung und geprüft auf jeder Uhr-Zecke basiert. (HZ-Variable ist die Pulsrate der besonderen Kerntätigkeit von Linux. 1 Hz sind einer Uhr-Zecke gleich; 10 Millisekunden standardmäßig.), Obwohl der HZ-Wert in einigen Versionen des Kerns konfiguriert werden kann, wird er normalerweise auf 100 gesetzt. Der Berechnungscode verwendet den HZ-Wert, um die Zentraleinheitslastberechnungsfrequenz zu bestimmen. Spezifisch, der timer.c:: Calc_load Funktion wird den Algorithmus alle 5 * HZ, oder grob alle fünf Sekunden führen. Folgender ist dass Funktion vollständig:

nicht unterzeichneter langer avenrun [3];

statische Reihenleere calc_load (nicht unterzeichnete lange Zecken)

{\

nicht unterzeichneter langer active_tasks;/*-fester Punkt * /

statische int Zählung = LOAD_FREQ;

Zählung - = Zecken;

wenn (Zählung

Die Avenrun-Reihe enthält 1-minutigen, 5-minutigen und 15-minutigen Durchschnitt. Das CALC_LOAD Makro und seine verbundenen Werte werden in sched.h definiert:

  1. definieren Sie FSHIFT 11 /* nr Bit der Präzision * /
  2. definieren Sie FIXED_1 (1
</Quelle>

Andere Systemleistungsbefehle

Andere Befehle, um Systemleistung zu bewerten, schließen ein:

  • die Systemzuverlässigkeit und der Lastdurchschnitt
  • weil ein gesamtes System ansieht
  • interaktiver Prozess-Zuschauer
  • interaktiver Netzverkehrszuschauer
  • für die Lagerungseingabe/Ausgabe-Statistik
  • für die Netzstatistik
  • für die Zentraleinheitsstatistik
  • laden Sie durchschnittlichen Graphen für das Terminal
  • laden Sie durchschnittlichen Graphen für X

Siehe auch

  • Zentraleinheitsgebrauch

Links

  • Erklärung mit einer illustrierten Verkehrsanalogie.

Zeichen


Gans von Kanada / Polizeiabteilung von Los Angeles
Impressum & Datenschutz