gato /proc/stat
http://www.linuxhowtos.org/System/procstat.htm
Estoy de acuerdo con esta respuesta anterior. La línea de cpu en este archivo da el número total de "jiffies" que su sistema ha gastado haciendo diferentes tipos de procesamiento.
Lo que debe hacer es tomar 2 lecturas de este archivo, separadas por el intervalo de tiempo que necesite. Los números son valores crecientes (sujetos a la transferencia de enteros), por lo que para obtener el % de CPU, debe calcular cuántos jiffies han transcurrido durante su intervalo, en comparación con cuántos jiffies se gastaron en el trabajo.
por ejemplo, suponga que a las 14:00:00 tiene
procesador 4698 591 262 8953 916 449 531
total_jiffies_1 =(suma de todos los valores) =16400
work_jiffies_1 =(suma de usuario, agradable, sistema =los primeros 3 valores) =5551
y a las 14:00:05 tienes
procesador 4739 591 289 9961 936 449 541
total_jiffies_2 =17506
trabajo_jiffies_2 =5619
Entonces, el % de uso de CPU durante este período es:
work_over_period =work_jiffies_2 - work_jiffies_1 =68
total_over_period =total_jiffies_2 - total_jiffies_1 =1106
%cpu =work_over_period / total_over_period * 100 =6,1 %
Espero que ayude un poco.
Intenta leer /proc/loadavg
. Los primeros tres números son la cantidad de procesos que se están ejecutando (es decir, usando una CPU), promediados durante los últimos 1, 5 y 15 minutos, respectivamente.
http://www.linuxinsight.com/proc_loadvg.html