Jaki jest najbliższy odpowiednik „średniej obciążenia” w systemie Windows dostępny za pośrednictwem WMI?

10

Linux ma pojęcie średniej obciążenia, która jest zdefiniowana jako:

Średnie obciążenia systemu to średnia liczba procesów, które są w stanie uruchomionym lub nieprzerwanym. Proces w stanie wykonalnym albo korzysta z procesora, albo czeka na użycie procesora. Proces w stanie nieprzerwanym czeka na pewien dostęp do I / O, np. Na dysk. Średnie są brane z trzech przedziałów czasowych. Średnie obciążenia nie są znormalizowane dla liczby procesorów w systemie, więc średnia wartość obciążenia 1 oznacza, że ​​cały system z procesorem jest ładowany przez cały czas, podczas gdy w systemie z 4 procesorami oznacza to, że był bezczynny przez 75% czasu.

Jaki jest najbliższy odpowiednik dostępny za pośrednictwem WMI? Zasadniczo czy istnieją różnice między dwoma systemami operacyjnymi, które determinują sposób pomiaru takich wskaźników wydajności? Jakie są różnice?

leonigmig
źródło

Odpowiedzi:

9

Process Queue LengthLiczyć od Systemobiektu licznika wydajności jest:

Długość kolejki procesorów to liczba wątków w kolejce procesorów [...]

Ta wartość jest dostępna w WMI za pośrednictwem Win32_PerfFormattedData_PerfOS_System.

Richard
źródło
Zagłębiając się nieco w tę odpowiedź stackoverflow.com/questions/807506/... wydaje się dobrze przedstawiać różnice między systemami operacyjnymi.
leonigmig
1
Irytujące: „Ta właściwość wyświetla tylko ostatnią zaobserwowaną wartość; nie jest to średnia”. : - |
Blaisorblade
Długość kolejki procesów reprezentuje tylko liczbę procesów oczekujących na procesor. Nie pokazuje procesów oczekujących na dyskowe we / wy lub sieciowe we / wy. Jednak odpowiednik systemu Linux bierze pod uwagę procesy w nieprzerwanym stanie uśpienia również przy obliczaniu obciążenia. Procesy w tym stanie oznaczają, że czekają na pewnego rodzaju We / Wy.
Amit Bhaira,
4

Nie znam żadnej takiej miary całkowitego zapotrzebowania na pracę, to tylko procent procesora z pewnym rozkładem wymaganego rodzaju procesora. Utrudnia to określenie, jak bardzo maszyna jest przeciążona. Gdy system Linux zgłasza średnią wartość obciążenia wynoszącą 63, a system Windows zgłasza 100% procesora ... cóż, oba działają całkowicie wyczerpująco, ale to wszystko, co możesz powiedzieć o systemie Windows.

sysadmin1138
źródło
3

Nie jestem pewien, czy w systemie Windows jest coś, co byłoby równoważne, i nie jestem pewien, czy to by coś znaczyło. Z opisu nie widzę, jak proces nie zostałby uwzględniony, ponieważ nawet proces zawieszony lub zawieszony otrzymałby przydzielony czas procesora. Ponadto bardziej istotne jest spojrzenie na wątki i wątki uruchamialne niż na procesy pod oknami, aby określić dowolne pojęcie obciążenia na podstawie podanej definicji.

Jim B.
źródło
0

Za pomocą tego polecenia możesz uzyskać chwilowe obciążenie procesora jako wartość procentową:

wmic cpu get loadpercentage

Które zwraca:

LoadPercentage
10

Niestety, nie widzę żadnych czasowych średnie z wmic cpu get, co byłoby miłe.

Mike T.
źródło
1
Jest to tylko procent wykorzystania procesora w ostatnim okresie próbkowania, nie ma to nic wspólnego z „średnią obciążeniem”.
GreyCat
0

Jeśli używasz Pythona, psutil emuluje getloadavg () w systemie Windows za pomocą długości kolejki procesora:

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

PR pokazujący, jak to się robi: https://github.com/giampaolo/psutil/pull/1485

Giampaolo Rodolà
źródło