Quel est l'équivalent le plus proche de la «moyenne de charge» dans Windows disponible via WMI?

10

Linux a une notion de moyenne de charge qui est définie comme:

Les moyennes de charge système sont le nombre moyen de processus qui sont dans un état exécutable ou ininterrompu. Un processus dans un état exécutable utilise la CPU ou attend d'utiliser la CPU. Un processus en état ininterrompu attend un accès E / S, par exemple en attente de disque. Les moyennes sont prises sur les trois intervalles de temps. Les moyennes de charge ne sont pas normalisées pour le nombre de CPU dans un système, donc une moyenne de charge de 1 signifie qu'un seul système CPU est chargé tout le temps tandis que sur un système à 4 CPU, cela signifie qu'il était inactif 75% du temps.

Quel est l'équivalent le plus proche disponible via WMI? Fondamentalement, existe-t-il des différences entre les deux systèmes d'exploitation qui déterminent comment une telle mesure de performance doit être mesurée? Quelles sont les différences?

leonigmig
la source

Réponses:

9

Le Process Queue Lengthnombre de l' Systemobjet compteur de performances est:

La longueur de la file d'attente du processeur est le nombre de threads dans la file d'attente du processeur [...]

Cette valeur est disponible dans WMI via Win32_PerfFormattedData_PerfOS_System.

Richard
la source
Creuser un peu cette réponse stackoverflow.com/questions/807506/… semble donner une bonne vue des différences entre les OS.
leonigmig
1
"Cette propriété affiche uniquement la dernière valeur observée; ce n'est pas une moyenne." : - |
Blaisorblade
La longueur de la file d'attente de processus représente uniquement le nombre de processus en attente de CPU. Il n'affiche pas les processus en attente d'E / S disque ou d'E / S réseau. Cependant, son homologue Linux prend également en compte les processus en veille sans interruption dans son calcul de charge. Les processus dans cet état indiquent qu'ils attendent une sorte d'E / S.
Amit Bhaira
4

Je ne connais pas une telle mesure de la demande globale de travail, c'est juste un pourcentage de CPU avec une ventilation des types de CPU demandés. Cela rend difficile de comprendre à quel point une machine est surchargée. Lorsqu'un système Linux rapporte une charge moyenne de 63 et que le système Windows rapporte 100% de CPU ... eh bien, ils fonctionnent tous les deux à plat, mais c'est à peu près tout ce que vous pouvez dire sur le système Windows.

sysadmin1138
la source
3

Je ne suis pas sûr qu'il y ait quoi que ce soit dans les fenêtres qui serait équivalent, et je ne suis pas sûr que cela signifierait quelque chose s'il y en avait. D'après la description, je ne vois pas comment un processus ne pourrait pas être inclus car même un processus suspendu ou suspendu obtiendrait du temps CPU alloué. De plus, il est plus pertinent de regarder les threads et les threads exécutables plutôt que les processus sous Windows afin de déterminer toute notion de charge par la définition fournie.

Jim B
la source
0

Vous pouvez obtenir une charge CPU instantanée en pourcentage avec cette commande:

wmic cpu get loadpercentage

Qui retourne:

LoadPercentage
10

Malheureusement, je ne vois pas de temps en moyenne de wmic cpu get, ce qui serait bien.

Mike T
la source
1
Ce n'est qu'un pourcentage d'utilisation du processeur au cours de la dernière période d'échantillonnage, il n'a rien de commun avec la «moyenne de charge».
GreyCat
0

Si vous utilisez Python, psutil émule getloadavg () sur Windows via la longueur de la file d'attente du processeur:

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

PR montrant comment cela se fait: https://github.com/giampaolo/psutil/pull/1485

Giampaolo Rodolà
la source