Heute morgen war ich mit einem Cluster-Node beschäftigt, welcher sehr viel seiner Rechenkraft mit Systemarbeiten belegt, was im Idealfall natürlich nicht sein sollte.
Also habe ich mich auf die Suche gemacht und die Last der Maschine mit uptime, vmstat oder top analysiert.
Und dabei ist mir etwas sehr seltsames aufgefallen: vmstat und top haben beide angezeigt, dass die CPU (2x 4 Kerne) der Maschine zu 99% mit Idle, also keiner Arbeit belegt ist.
Komischerweise aber zeigt uptime für den Load average einen Wert von 1.7.
1
| load average: 1.70, 1.40, 1.30 |
Doch nun die grosse Frage: Wofür steht Load denn überhaupt?
Die drei Werte stehen für die Last der Maschine zu einem bestimmten Zeitpunkt, jeweils für die aktuelle Minute, über 5 und über 15 Minuten.
Um zu verstehen, was der Load aber tatsächlich darstellt, gehen wir von einer Maschine mit einem Single-Core aus. Diesen kann man gleichsetzen mit einer Brücke mit einer Spur.
Zeigt der Load 1.0 an, so ist die Brücke optimal belastet:

Es kommen genau so viele Autos durch, wie vorgesehen und keines muss warten.
Wir ein Load von unter 1, zum Beispiel 0.5 angezeigt, so hätten nochmals so viele Autos platz, die Brücke ist also nicht voll ausgelastet:

Der weitaus kritischere Fall aber ist dann ein Wert über 1.0, zum Beispiel 1.7:

Die bedeutet, dass die Brücke überlastet ist. Die Spur der Brücke ist also nicht nur voll ausgelastet, es müssen sogar noch Autos vor der Brücke warten!
Nun lässt sich dies aber so nur auf einen Single-Core-Maschine anwenden.
In unserem Fall sind ja 8 Kerne vorhanden, was wiederum 8 Spuren auf einer Brücke, also Platz für 8 Reihen voll Autos bedeuten würde:

Das System ist also genau optimal ausgelastet, wenn der Load die selbe Anzahl ausgibt, wie an Kernen vorhanden sind.
Wie viel das tatsächlich sind, gibt folgender Befehl aus:
1
| grep 'model name' /proc/cpuinfo | wc -l |
In meinem Fall also ist ein Wert von 1.7 nicht schlimm, da erst 8 Volllast bedeuten würde, was sich auch wiederum mit den 99% Idle von vmstat deckt.
[Quelle]