Bedeutung der Linux CPU Load
Hallo alle miteinander,
ich möchte gerne mal ein Thema anreißen, zu dem ich immer wieder die selben Fragen gestellt bekomme:
Was ist die CPU Load
Oder alternativ die Frage: Was bedeutet die Load. (Load avarage erklärt mittels der Linuxfibel)
Vorab möchte ich kurz verdeutlichen was ich meine. Wenn ihr auf eurem System den folgenden Befehl ausführt bekommt ihr passend dazu eine Ausgabe die wie folgt aussieht:
# uptime
Hier gibt es nun mehrere Teilausgaben.
a) Zum einen wie lange das System bereits hochgefahren ist (seit 11:38 und 42 Sekunden)
b) Wie viele Benutzer eingeloggt sind (1 user)
c) Load avarage (die CPU Load mit der wir uns beschäftigen)
Die beiden Punkte a) und b) interessieren uns in diesem Bezug recht wenig. Viel mehr möchte ich mich dem Punkt c) widmen und euch erklären, wie dieser sich zusammensetzt..
Load avarage :: Auslastungsdurchschnitt
Bitte was?! Ja genau .. es geht um die durchschnittliche Auslastung des Computer oder des Server in einer bestimmten Zeit. In diesem Fall haben wir folgende Anzeige:
0.54, 0.50, 0.45
Diese 3 Zahlen sagen alle das Selbe aus, aber in einem unterschiedlichen Zeitraum. Zur Definition:
- 0.54 – durchschnittliche Auslastung der letzten 60 Sekunden
- 0.50 – durchschnittliche Auslastung der letzten 300 Sekunden
- 0.45 – durchschnittliche Auslastung der letzten 900 Sekunden
Widmen wir uns mal der Frage:
Welche Bedeutung hat die “Load avarage”
Ganz einfach. Es geht um die Auslastung der CPU und der anfallenden Aufgaben, die die CPU abzuarbeiten hat. Da das immer etwas schwierig zu erklären ist und bilder doch mehr als tausend Worte sagen, nutze ich dementsprechend auch lieber kleine Bilder hierfür.
Kleines Gedankenspiel:
Stellen wir uns vor, dass wir eine CPU mit einem Kern haben (also keine Multicore-CPU) – das ist zwar technisch nicht mehr auf dem aktuellen Stand aber für die erste Erklärung ist es deutlich einfacher. Wir nehmen nun diese eine CPU mit einem Kern und vereinfachen uns es noch etwas mehr. Diese eine CPU mit diesem einen Kern ist eine einspurige Straße:
------------------- -------------------
Wir man sieht ist diese Straße nun offensichtlich Leer. Gehen wir von einer maximalen Auslastung der Straße von 10 Autos aus sieht eine voll ausgelastete nun also so aus (in diesem Fall sind “O” die Autos):
------------------- O O O O O O O O O O -------------------
Diese volle Straße entspricht der Load avarage von 1.00 – das heißt, dass die maximale Kapazität der Aufgaben, die verarbeitet werden können, erreicht ist. 0.01 Auto mehr würden bereits zu einem Stau führen – dieser Stau sorgt dafür, dass alles langsamer wird und irgendwann zum erliegen kommt. Übersetzt bedeutet das, dass wenn die Load avarage über 1.00 liegt, das System langsam wird.
------------------- O O O O O O O O O O O <- 1 Auto staut sich - entspricht der Load von 1.10 -------------------
Der Stau wird mit der Zeit immer länger und länger wenn immer mehr und mehr Aufgaben (Autos) hinzukommen.
Da wir aber alle gute Administratoren sind und Reserven mit einrechnen gehen wir von folgender Faustregel aus.
Die Faustregel
Dein System – mit einer CPU und einem Kern – läuft nur dann noch flüssig, wenn du dafür sorgst, dass es gar nicht erst dazu kommen kann.
Load | Status | Bemerkung |
0.00 – 0.70 | alles i.O. | Bis hierhin besteht kein Handlungsbedarf. Das System hat ausreichend Ressourcen |
0.71 – 1.00 | prüfen | Das System ist außerhalb der Norm – Prozesse und Aufgaben prüfen, ggf. Prozesse outsourcen |
1.01 – X.XX | kritisch | Das System kann die Menge der Aufgaben nicht mehr abarbeiten. Es staut sich! |
Wir merken uns nun also, dass die Load zum einen viel über die Auslastung der CPU aussagt, zum anderen aber ein wichtiges Zeichen für Administratoren ist, wann ein System aufgerüstet, getauscht oder gesplittet werden sollte.
Was ist nun mit Multi-Core Prozessoren?
Die Frage kann ich euch ganz einfach beantworten, denn diese ist mindestens so simpel, wie die Erklärung der Load avarage selber. Verdoppelt sich die Anzahl der Kerne, so verdoppeln sich auf die Werte aus der oben stehenden Tabelle. Ich führe das noch kurz etwas aus:
Dual-Core CPU (entspricht einer Load von 1.0):
------------------- O O O O O O O ------------------- O O O -------------------
Man sieht: Wir haben eine zweispurige Straße. Dementsprechend darf die maximale Load 2.00 betragen. In diesem Beispiel beträgt die Load 1.00 und wie man sehr schön erkennen kann, haben wir noch Platz für weitere 10 Autos, die auf der Straße fahren können.
Die Erweiterung lässt sich also immer weiter treiben.
Quad-Core CPUs haben dementsprechend 4 Straßen und dürfen eine maximale Load von 4.00 anzeigen.
Ich denke, dass das Prinzip klar sein sollte. Tabellarisch sähe das dann so aus:
Dual-Core CPUs:
Load | Status | Bemerkung |
0.00 – 1.40 | alles i.O. | Bis hierhin besteht kein Handlungsbedarf. Das System hat ausreichend Ressourcen |
1.41 – 2.00 | prüfen | Das System ist außerhalb der Norm – Prozesse und Aufgaben prüfen, ggf. Prozesse outsourcen |
2.01 – X.XX | kritisch | Das System kann die Menge der Aufgaben nicht mehr abarbeiten. Es staut sich! |
Quad-Core CPUs:
Load | Status | Bemerkung |
0.00 – 2.80 | alles i.O. | Bis hierhin besteht kein Handlungsbedarf. Das System hat ausreichend Ressourcen |
2.81 – 4.00 | prüfen | Das System ist außerhalb der Norm – Prozesse und Aufgaben prüfen, ggf. Prozesse outsourcen |
4.01 – X.XX | kritisch | Das System kann die Menge der Aufgaben nicht mehr abarbeiten. Es staut sich! |
Aber …
Das beschreibt alles den Idealfall. Ich möchte erwähnen das man als Admin einen Puffer von 0.30 Load einrechnen sollte. Bei Multi-Core Prozessoren (alles ab Quad-Core Prozessoren) verkleinere ich den Puffer persönlich auf 0.20 Load, sodass der Fall des Prüfens bei mir frühestens ab einer Load von 3.20 eintritt. Früher mache ich mir persönlich absolut keine Sorgen. Im Endeffekt müsst ihr aber selber ein Gefühl dafür bekommen und es für die unterschiedlichen Einsatzgebiete eurer Server entscheiden. Ein reiner Webserver, der ein paar Webseiten beinhaltet darf durchaus mehr freie Kapazitäten haben als beispielsweise ein Cloud-Storage-Server, der eher weniger zu tun hat. Wichtig ist aber, dass ihr es im Auge behaltet!.
So einfach .. so wenige wissen es
Ich hoffe, dass ich euch mit diesem Eintrag ein wenig Wissen beibringen konnte und ihr nun ein Auge auf eure Load werft – denn es gibt nichts lästigeres als langsame Services (Webseiten etc) 😉
Schaut euch auch gerne meinen letzten Artikel an ;-P
Liebe Grüße
Nico