Auf der Wikipedia-Seite für CPU-Zeit heißt es
Die CPU-Zeit wird in Takten oder Sekunden gemessen. Häufig ist es hilfreich, die CPU-Zeit als Prozentsatz der CPU-Kapazität zu messen, die als CPU-Auslastung bezeichnet wird.
Ich verstehe nicht, wie eine Zeitdauer durch einen Prozentsatz ersetzt werden kann. Wenn ich mir das ansehe top
, %CPU
sagt mir das nicht , dass MATLAB
2.17 meiner Kerne verwendet werden?
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
18118 jasl 20 0 9248400 261528 78676 S 217.2 0.1 8:14.75 MATLAB
Frage
Wie berechne ich die CPU-Auslastung selbst, um die CPU-Auslastung besser zu verstehen?
linux
performance
central-processing-unit
cpu-usage
Jasmine Lognnes
quelle
quelle
1
).Antworten:
Die CPU-Zeit wird in diskreten Zeitscheiben (Ticks) zugeordnet. Für eine bestimmte Anzahl von Zeitscheiben ist die CPU ausgelastet, für andere Zeiten nicht (was durch den Leerlaufprozess dargestellt wird). In der Abbildung unten ist die CPU für 6 der 10 CPU-Slices ausgelastet . 6/10 = .60 = 60% der ausgelasteten Zeit (und somit 40% der Leerlaufzeit).
Ein Prozentsatz ist definiert als "eine Zahl oder Rate, die als eine bestimmte Anzahl von Teilen von etwas ausgedrückt wird, das in 100 Teile unterteilt ist". In diesem Fall handelt es sich bei diesen Teilen um diskrete Zeitscheiben und bei dem Objekt handelt es sich um ausgelastete Zeitscheiben im Vergleich zu Leerlaufzeitscheiben - die Rate der ausgelasteten Zeitscheiben im Vergleich zu Leerlaufzeitscheiben.
Da CPUs in GHz arbeiten (Milliarden von Zyklen pro Sekunde). Das Betriebssystem teilt diese Zeit in kleinere Einheiten auf, die als Ticks bezeichnet werden. Sie sind nicht wirklich eine Zehntelsekunde. Die Tickrate unter Windows beträgt 10 Millionen Ticks pro Sekunde und unter Linux
sysconf(_SC_CLK_TCK)
(normalerweise 100 Ticks pro Sekunde).In etwa
top
werden die ausgelasteten CPU-Zyklen dann weiter in Prozentsätze von Dingen wie Benutzerzeit und Systemzeit unterteilt. Untertop
Linux und Perfmon unter Windows erhalten Sie häufig eine Anzeige, die über 100% hinausgeht. Dies liegt daran, dass die Gesamtsumme 100% * the_number_of_cpu_cores ist.In einem Betriebssystem ist es die Aufgabe des Schedulers , diese wertvollen Segmente Prozessen zuzuweisen. Daher meldet dies der Scheduler.
quelle
Die CPU-Zeit ist die Zeit, in der der Prozess die CPU verwendet. Die Umrechnung in einen Prozentsatz erfolgt durch Division durch die verstrichene Echtzeit.
Wenn ich also einen Prozess verwende, der über einen Zeitraum von 2 Sekunden 1 Sekunde CPU-Zeit beansprucht, werden 50% einer CPU beansprucht.
Im Fall Ihres MATLAB-Prozesses geben 217% an, dass im letzten Abtastintervall 2,17 Sekunden CPU-Zeit pro Sekunde verbraucht wurden - effektiv, indem 2 CPU-Kerne monopolisiert und ein Drittel benötigt wurden.
quelle