Cómo calcular por carga de CPU

2

¿Hay alguna API de C para calcular por carga de CPU? /proc/loadavgproporciona la carga promedio de CPU para todas las CPU disponibles y /proc/statno menciona nada sobre procesos activos por CPU.

¿Cómo puedo obtener la carga por CPU?

diago
fuente
¿Intentaste man proc 5ver si hay algo más? No pude encontrarlo con un vistazo rápido, pero es posible que tenga mejor suerte. Creo que está escondido en algún lugar, ya que el monitor del sistema muestra muy bien lo que quieres (creo).
Bernhard
Sí, miré man proc 5, me da información sobre cada proceso, pero estoy mirando la carga de CPU agregada. ¿hay algún archivo donde se actualice por carga de CPU? eso también será suficiente para mi problema
diago
La carga generalmente no se mantiene por CPU, ya que la cola de ejecución es una entidad única (o al menos lo era cuando examiné el código relevante).
Didi Kohen

Respuestas:

5

No existe tal carga por CPU.

El promedio de carga se define como el número de procesos que esperan recursos del sistema. Esto no es necesariamente CPU. Además, dado que un proceso puede estar esperando el tiempo de CPU y no se está ejecutando activamente en una CPU, no puede atribuirlo a ninguna CPU en particular, ya que el proceso podría terminar ejecutándose en cualquier CPU (a menos que se fije).

Sin embargo, puede obtener el% de utilización por CPU. Use /proc/staty use el cuarto campo de cada CPU para determinar qué tan inactiva está esa CPU (consulte man 5 procy la /proc/statsección).
Básicamente lea el valor, duerma 1 segundo, lea el valor nuevamente, divida la diferencia entre USER_HZ.

Patricio
fuente