¿Cuál es el equivalente más cercano de "promedio de carga" en Windows disponible a través de WMI?

10

Linux tiene una noción de carga promedio que se define como:

Los promedios de carga del sistema son el número promedio de procesos que se encuentran en un estado ejecutable o ininterrumpible. Un proceso en un estado ejecutable está usando la CPU o está esperando usar la CPU. Un proceso en estado ininterrumpido está esperando algún acceso de E / S, por ejemplo, esperando el disco. Los promedios se toman durante los tres intervalos de tiempo. Los promedios de carga no están normalizados para la cantidad de CPU en un sistema, por lo que un promedio de carga de 1 significa que un solo sistema de CPU se carga todo el tiempo, mientras que en un sistema de 4 CPU significa que estuvo inactivo el 75% del tiempo.

¿Cuál es el equivalente más cercano disponible a través de WMI? Básicamente, ¿existen diferencias entre los dos sistemas operativos que determinan cómo se debe medir esa medida de rendimiento? ¿Cuáles son las diferencias?

leonigmig
fuente

Respuestas:

9

El Process Queue Lengthrecuento del Systemobjeto contador de rendimiento es:

La longitud de la cola del procesador es el número de subprocesos en la cola del procesador [...]

Este valor está disponible en WMI a través de Win32_PerfFormattedData_PerfOS_System.

Ricardo
fuente
Excavando un poco esta respuesta stackoverflow.com/questions/807506/… parece dar una buena visión de las diferencias entre los sistemas operativos.
leonigmig
1
Molesto, "Esta propiedad muestra solo el último valor observado; no es un promedio". : - |
Blaisorblade
La longitud de la cola de proceso solo representa el número de procesos que esperan la CPU. No muestra procesos en espera de E / S de disco o E / S de red. Sin embargo, la contraparte de Linux considera los procesos en estado de suspensión ininterrumpible también en su cálculo de carga. Los procesos en este estado denotan que están esperando algún tipo de E / S.
Amit Bhaira
4

No conozco ninguna medida de la demanda de trabajo en general, es solo un porcentaje de CPU con algún desglose en los tipos de CPU demandados. Esto hace que sea difícil descubrir cuán sobrecargada está una máquina. Cuando un sistema Linux informa un promedio de carga de 63 y el sistema Windows informa un 100% de CPU ... bueno, ambos se están ejecutando sin problemas, pero eso es todo lo que se puede decir sobre el sistema Windows.

sysadmin1138
fuente
3

No estoy seguro de que haya algo en Windows que sea equivalente, y no estoy seguro de que signifique algo si estuviera allí. De la descripción no puedo ver cómo un proceso no se incluiría, ya que incluso un proceso suspendido o suspendido obtendría el tiempo de CPU asignado. Además, es más relevante mirar los subprocesos y los subprocesos ejecutables en lugar de los procesos bajo Windows para determinar cualquier noción de carga según la definición proporcionada.

Jim B
fuente
0

Puede obtener una carga instantánea de la CPU como porcentaje con este comando:

wmic cpu get loadpercentage

Que devuelve:

LoadPercentage
10

Por desgracia, no veo ningún tiempo promedios de wmic cpu get, que estaría bien.

Mike T
fuente
1
Este es solo el porcentaje de uso de la CPU durante el último período de muestreo, no tiene nada en común con el "promedio de carga".
GreyCat
0

Si está utilizando Python, psutil emula getloadavg () en Windows a través de la longitud de la cola del procesador:

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

Relaciones públicas que muestran cómo se hace esto: https://github.com/giampaolo/psutil/pull/1485

Giampaolo Rodolà
fuente