¿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?
¿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?
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/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.
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).