Nicht sicher, aber meistens am 1.00*n_cpu
.
Die Auslastung bedeutet Folgendes: Wenn auf einem einzelnen CPU-System mehrere Prozesse vorhanden sind, werden diese scheinbar parallel ausgeführt. Das stimmt aber nicht. Was praktisch passiert: Der Kernel gibt einem Prozess 1/100 Sekunde und bricht ihn dann mit einem Interrupt ab. Und gibt die nächste 1 / 100stel Sekunde an einen anderen Prozess.
Praktisch wird die Frage, "welcher Prozess unser nächstes 1 / 100stel Sekundenintervall erhalten soll", durch eine komplexe Heuristik entschieden. Es wird als benannte Aufgabe Scheduling .
Natürlich sind Prozesse, die blockiert sind, zum Beispiel darauf warten, dass ihre Daten von der Festplatte gelesen werden, von dieser Aufgabenplanung ausgenommen.
Welche Last sagt: Wie viele Prozesse warten derzeit auf ihren nächsten 1/100 Sekunden-Zeitraum? Natürlich ist es ein Mittelwert. Dies liegt daran, dass Sie in a mehrere Zahlen sehen können cat /proc/loadavg
.
Die Situation in einem Multi-CPU-System ist etwas komplexer. Es gibt mehrere CPUs, deren Zeitrahmen mehreren Prozessen zugewiesen werden können. Das macht die Aufgabenplanung ein wenig - aber nicht zu viel - komplexer. Aber die Situation ist dieselbe.
Der Kernel ist intelligent, er versucht, die Systemressourcen für eine optimale Effizienz gemeinsam zu nutzen, und das ist in der Nähe (es gibt kleinere Optimierungsprobleme, zum Beispiel ist es besser, wenn ein Prozess so lange wie möglich auf derselben ausgeführt wird cpu wegen Caching-Überlegungen, aber sie spielen dort keine Rolle). Dies liegt daran, dass, wenn wir Load 8 haben, dies bedeutet, dass tatsächlich 8 Prozesse auf ihre nächste Zeitscheibe warten. Wenn wir 8 cpus haben, können wir diese Zeitscheiben eins zu eins an den cpus weitergeben und somit wird unser System optimal genutzt.
Wenn Sie eine sehen top
, sehen Sie, dass die Anzahl der tatsächlich ausgeführten Prozesse überraschend niedrig ist: Es handelt sich um die dort markierten Prozesse R
. Sogar auf einem nicht wirklich Hardcore-System ist es oft unter 5. Dies liegt teilweise daran, dass die Prozesse, die auf ihre Daten von den Festplatten oder vom Netzwerk warten, ebenfalls angehalten werden (markiert mit S
oben). Die Last zeigt nur die CPU-Auslastung.
Es gibt auch Tools zum Messen der Festplattenlast, obwohl sie zumindest für die Überwachung der CPU-Auslastung wichtig sein sollten, aber in unserer professionellen Sysadmin-Welt ist dies nicht so bekannt.
Windows-Tools teilen die Last häufig mit der tatsächlichen CPU-Nummer. Dies führt dazu, dass einige professionelle Windows-Systemadministratoren die Systemlast in diesem durch die CPU aufgeteilten Sinne verwenden. Sie haben nicht Recht und werden wahrscheinlich glücklicher sein, wenn Sie ihnen dies erklären.
Multicore-CPUs sind praktisch mehrere CPUs auf demselben Siliziumchip. Es gibt keinen Unterschied.
Bei Hyperthread-CPUs gibt es einen interessanten Nebeneffekt: Durch das Laden einer CPU werden die Hyperthread-Paare langsamer. Dies geschieht jedoch auf einer tieferen Ebene, die von der normalen Aufgabenplanung behandelt wird, obwohl dies die prozessbewegenden Entscheidungen des Schedulers beeinflussen kann (und sollte).
Aber aus unserer Sicht - was die Systemlast bestimmt - spielt es keine Rolle.