¿Cuál es la forma más precisa de medir la utilización de la CPU de los procesos en sistemas basados ​​en Windows?

¿Cuál es la forma más precisa de medir la utilización de la CPU de los procesos en sistemas basados ​​en Windows?

He estado tratando de encontrar la mejor manera de medir la utilización de la CPU de los procesos en un sistema Windows Server 2012R2 y descubrí que existen muchas inconsistencias entre los métodos utilizados para medir la utilización.

Inicialmente, miré para observar la utilización de la CPU en el administrador de tareas, pero solo le brinda una instantánea de la utilización, no datos durante un cierto período de tiempo, por lo que decidí usar otras herramientas como procmon o el explorador de procesos, pero ninguna de ellas. esos dos reportan las mismas cifras o incluso las clasificaciones entre procesos.

Aquí están las inconsistencias:

1) La pestaña "procesos" del administrador de tareas y la pestaña "detalles" muestran valores completamente diferentes para el "% de utilización de CPU" y la clasificación entre esos procesos. Por ejemplo, la pestaña de procesos muestra esto:

  • abc.exe %24
  • 123.exe %10
  • sdf.exe %3

mientras que la pestaña "detalles" muestra:

  • inactivo %55 (esta no es la parte impar)
  • sdf.exe %11
  • ert.exe %9
  • abc.exe %7

2) El porcentaje de CPU de Process Explorer muestra valores diferentes en comparación con la pestaña "Procesos" del Administrador de tareas y con la pestaña "Detalles": entiendo que los valores pueden mostrarse con un retraso o inconsistencias menores, pero los valores que se muestran en los tres lugares son casi completos. diferente como en el ejemplo anterior.

3) Process Monitor también proporciona información inconsistente sobre la clasificación de los procesos en términos de utilización de la CPU: aunque ProcMon no proporciona valores porcentuales de los procesos, la clasificación entre esos procesos (en términos de tiempo de CPU) no coincide con Process Explorer. o ranking de administradores de tareas.

La pregunta en resumen es: ¿Cuál de esas mediciones daría la representación más precisa de la utilización de la CPU entre procesos y por qué?

Respuesta1

El más preciso es Process Explorer por estos motivos:

  • muestra porcentajes de utilización de CPU por proceso redondeados a una resolución de dos decimales de forma predeterminada en lugar de a un número entero
  • rastrea el tiempo dedicado a atender interrupciones y DPC y los muestra por separado del proceso inactivo (el Administrador de tareas no hace esto)
  • Utiliza métricas adicionales del sistema para que los procesos que consumen pequeñas cantidades de CPU puedan identificarse y, cuando sea posible, proporcionar una cuenta más precisa del consumo real de CPU.

PE es la herramienta detallada a utilizar y se menciona en la Referencia del administrador de Windows Sysinternals por Mark Russinovich y Aaron Margosis como la herramienta a utilizar para mostrar la información más detallada.

Editar: la capacidad de rastrear interrupciones también puede ser muy útil para otras tareas, como depurar software y encontrar controladores defectuosos.

información relacionada