Was bedeutet „Load“ unter Linux?

Linux 3 Min. Lesezeit

Die Auslastung (auf Englisch „load average“) ist einer der am häufigsten beobachteten Indikatoren in Linux-Systemen. Sie gibt an, wie viele Prozesse im Durchschnitt gleichzeitig arbeiten wollten: wie viele gerade auf dem Prozessor liefen oder auf ihre Ausführung warteten (ausführbarer Zustand) und wie viele in einem nicht unterbrechbaren Zustand warteten, typischerweise auf Festplatten- oder Netzwerk-E/A (der sogenannte D-Zustand). Die Auslastung ist also kein Prozentsatz und misst nicht direkt die CPU-Auslastung, sondern die „Nachfrage“ nach dem System.

Die drei Zahlen

Der Wert „Load“ wird durch drei Zahlen beschrieben, zum Beispiel:

load average: 1.20, 0.85, 0.60

Dies sind die exponentiell geglätteten Durchschnittswerte der letzten 1, 5 und 15 Minuten. Aus ihrem Vergleich lässt sich der Trend ablesen: Ist der erste Wert am höchsten, steigt die Auslastung gerade an; ist er am niedrigsten, ist ein früherer Spitzenwert bereits im Abklingen begriffen.

Wie kann man diese abfragen?

uptime
cat /proc/loadavg
nproc

Sowohl „uptime“ als auch die erste Zeile von „top“ zeigen die drei Werte an. „nproc“ gibt die Anzahl der Prozessorkerne (bei VPS die vCPUs) an, ohne die die Auslastung nicht interpretierbar ist. Über die Verwendung von „top“ und „htop“ erfahren Sie mehr in unserem Artikel zur Prozessüberwachung.

Wann ist die Auslastung hoch?

Vergleichen Sie die Auslastung stets mit der Anzahl der Kerne:

  • Auf einem Server mit 4 vCPUs bedeutet eine Auslastung von 4 in etwa eine vollständige Auslastung: Auf jedem Kern läuft etwas, aber niemand muss lange warten.
  • Wenn die Auslastung dauerhaft über der Anzahl der Kerne liegt, stauen sich die Prozesse, und der Server reagiert langsamer.
  • Ein kurzer, nur eine Minute dauernder Ausschlag (beispielsweise während einer Cron-Aufgabe oder einer Datensicherung) ist an sich kein Problem; der Wert von 15 Minuten ist aussagekräftiger.

Was kann zu einer hohen Auslastung führen?

Da die Auslastung auch Prozesse berücksichtigt, die auf E/A-Vorgänge warten, kann die CPU bei hoher Auslastung sogar fast untätig sein. Überprüfen Sie daher stets, was im Hintergrund abläuft:

  • CPU-Auslastung: In der Ausgabe von „top“ sind die Werte für „%Cpu(s)“ in den Zeilen „us“ und „sy“ hoch; ein oder mehrere Prozesse beanspruchen viel CPU-Leistung (beispielsweise ein außer Kontrolle geratenes PHP-Skript oder eine durch Bot-Verkehr überlastete Website).
  • Wartezeit auf die Festplatte: Der Wert für „wa“ (iowait) ist hoch, die Festplatte stellt den Engpass dar. Ursachen hierfür können eine umfangreiche Datensicherung, eine schlecht indizierte Datenbankabfrage oder der Umstand sein, dass der Arbeitsspeicher erschöpft ist und das System auf den Auslagerungsspeicher zurückgreift.
  • Virtualisierte Umgebung: Auf einem VPS gibt der Wert „st“ (steal) an, wie lange die virtuelle Maschine auf den physischen Prozessor gewartet hat.

Der Befehl „vmstat 1“ gibt pro Sekunde die Anzahl der laufenden (r) und blockierten (b) Prozesse sowie die Verteilung der CPU-Zeit aus, was dabei hilft, festzustellen, welcher Fall vorliegt. Auf einem AlmaLinux 10-Testrechner mit 2 vCPUs, einem Prozess, der drei Prozessoren auslastet, und einem kontinuierlichen Schreibvorgang auf die Festplatte:

Die Werte für Uptime, nproc und vmstat 1–5 unter Last: Die durchschnittliche Auslastung beträgt 3,03, die Anzahl der vCPUs beträgt 2, in der Spalte „r“ von vmstat sind 3–6 startbereite Prozesse zu sehen, 85 Prozent der CPU-Zeit entfallen auf „us“, 15 Prozent auf „sy“, die ID beträgt 0

Eine Auslastung von 3,03 auf zwei Kernen bedeutet, dass im Durchschnitt stets ein Prozess in der Warteschlange stand. In der Spalte „r“ standen 3 bis 6 Prozesse in der Warteschlange für die 2 Kerne, die Leerlaufzeit (id) betrug 0: Dies ist ein CPU-Engpass. Die erste Zeile von „vmstat“ zeigt den Durchschnitt seit dem Systemstart an (hier noch 95 % Leerlaufzeit), das tatsächliche Bild ergibt sich ab der zweiten Zeile.

Was sollten Sie tun, wenn der Wert dauerhaft hoch ist?

Suchen Sie zunächst den Prozess, der die Auslastung verursacht, und optimieren Sie ihn: durch Caching, die Optimierung von Datenbankabfragen oder die Reduzierung überflüssiger Cron-Jobs. Wenn die Auslastung proportional zum Datenverkehr ist und der Server für die Aufgabe einfach zu klein ist, können Sie unter den KVM-VPS-Paketen auch eine größere Variante mit mehr vCPUs wählen.

Zurück: Linux-Artikel (62)