¿Hay alguna API de C para calcular por carga de CPU? /proc/loadavg
proporciona la carga promedio de CPU para todas las CPU disponibles y /proc/stat
no menciona nada sobre procesos activos por CPU.
¿Cómo puedo obtener la carga por CPU?
¿Hay alguna API de C para calcular por carga de CPU? /proc/loadavg
proporciona la carga promedio de CPU para todas las CPU disponibles y /proc/stat
no menciona nada sobre procesos activos por CPU.
¿Cómo puedo obtener la carga por CPU?
Respuestas:
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/stat
y use el cuarto campo de cada CPU para determinar qué tan inactiva está esa CPU (consulte man 5 proc
y la /proc/stat
sección).
Básicamente lea el valor, duerma 1 segundo, lea el valor nuevamente, divida la diferencia entre USER_HZ.
man proc 5
ver 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).