Was ist das nächste Äquivalent zum „Lastdurchschnitt“ in Windows, das über WMI verfügbar ist?

10

Linux hat einen Begriff von Load Average, der definiert ist als:

Der Durchschnitt der Systemlast ist die durchschnittliche Anzahl von Prozessen, die sich entweder in einem ausführbaren oder einem unterbrechungsfreien Zustand befinden. Ein Prozess in einem ausführbaren Zustand verwendet entweder die CPU oder wartet auf die Verwendung der CPU. Ein Prozess im unterbrechungsfreien Zustand wartet auf einen E / A-Zugriff, z. B. auf eine Festplatte. Die Mittelwerte werden über die drei Zeitintervalle ermittelt. Lastdurchschnitte werden nicht für die Anzahl der CPUs in einem System normalisiert. Ein Lastdurchschnitt von 1 bedeutet also, dass ein einzelnes CPU-System ständig geladen ist, während es auf einem 4-CPU-System bedeutet, dass es 75% der Zeit im Leerlauf war.

Was ist das nächste über WMI verfügbare Äquivalent? Grundsätzlich gibt es Unterschiede zwischen den beiden Betriebssystemen, die bestimmen, wie eine solche Leistungsmetrik gemessen werden soll? Was sind die Unterschiede?

leonigmig
quelle

Antworten:

9

Die Process Queue LengthZählung vom SystemLeistungsindikatorobjekt lautet:

Die Länge der Prozessorwarteschlange ist die Anzahl der Threads in der Prozessorwarteschlange [...]

Dieser Wert ist in WMI über verfügbar Win32_PerfFormattedData_PerfOS_System.

Richard
quelle
Wenn Sie diese Antwort ein wenig genauer betrachten, scheint stackoverflow.com/questions/807506/… einen guten Überblick über die Unterschiede zwischen den Betriebssystemen zu geben.
Leonigmig
1
Ärgerlicherweise: "Diese Eigenschaft zeigt nur den zuletzt beobachteten Wert an. Es handelt sich nicht um einen Durchschnitt." : - |
Blaisorblade
Die Länge der Prozesswarteschlange gibt nur die Anzahl der Prozesse an, die auf die CPU warten. Es werden keine Prozesse angezeigt, die auf Festplatten-E / A oder Netzwerk-E / A warten. Das Linux-Gegenstück berücksichtigt jedoch Prozesse im unterbrechungsfreien Ruhezustand auch bei der Lastberechnung. Prozesse in diesem Zustand zeigen an, dass sie auf eine Art E / A warten.
Amit Bhaira
4

Ich kenne kein solches Maß für den Gesamtarbeitsbedarf, es ist nur eine prozentuale CPU mit einer gewissen Aufschlüsselung der benötigten CPU-Typen. Dies macht es schwierig herauszufinden, wie überlastet eine Maschine ist. Wenn ein Linux-System einen Lastdurchschnitt von 63 meldet und das Windows-System 100% CPU meldet, laufen beide auf Hochtouren, aber das ist ungefähr alles, was Sie über das Windows-System sagen können.

sysadmin1138
quelle
3

Ich bin mir nicht sicher, ob es in Windows etwas gibt, das gleichwertig wäre, und ich bin mir nicht sicher, ob es etwas bedeuten würde, wenn es dort wäre. Aus der Beschreibung kann ich nicht ersehen, wie ein Prozess nicht aufgenommen werden kann, da selbst einem blockierten oder angehaltenen Prozess die CPU-Zeit zugewiesen wird. Darüber hinaus ist es relevanter, Threads und ausführbare Threads als Prozesse unter Windows zu betrachten, um den Begriff der Last anhand der angegebenen Definition zu bestimmen.

Jim B.
quelle
0

Mit diesem Befehl können Sie eine sofortige CPU-Auslastung in Prozent erhalten:

wmic cpu get loadpercentage

Welches kehrt zurück:

LoadPercentage
10

Leider sehe ich keine Zeitmittelwerte ab wmic cpu get, was schön wäre.

Mike T.
quelle
1
Dies ist nur der Prozentsatz der CPU-Auslastung während des letzten Abtastzeitraums. Er hat nichts mit dem "Lastdurchschnitt" zu tun.
GreyCat
0

Wenn Sie Python verwenden, emuliert psutil getloadavg () unter Windows über die Länge der Prozessorwarteschlange:

 >>> import psutil
 >>> psutil.getloadavg()
 (3.14, 3.89, 4.67)

PR zeigt, wie das gemacht wird: https://github.com/giampaolo/psutil/pull/1485

Giampaolo Rodolà
quelle