cat /proc/stat
http://www.linuxhowtos.org/System/procstat.htm
Sono d'accordo con questa risposta sopra. La riga cpu in questo file fornisce il numero totale di "jiffies" che il tuo sistema ha impiegato per eseguire diversi tipi di elaborazione.
Quello che devi fare è prendere 2 letture di questo file, separate da qualsiasi intervallo di tempo richiesto. I numeri sono valori crescenti (soggetti al rollover degli interi), quindi per ottenere la %cpu devi calcolare quanti jiffies sono trascorsi nel tuo intervallo, rispetto a quanti jiffies sono stati spesi per lavorare.
es. Supponiamo che alle 14:00:00 tu abbia
processore 4698 591 262 8953 916 449 531
total_jiffies_1 =(somma di tutti i valori) =16400
work_jiffies_1 =(somma di user,nice,system =i primi 3 valori) =5551
e alle 14:00:05 hai
processore 4739 591 289 9961 936 449 541
total_jiffies_2 =17506
work_jiffies_2 =5619
Quindi l'utilizzo della %cpu in questo periodo è:
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%
Spero che questo aiuti un po'.
Prova a leggere /proc/loadavg
. I primi tre numeri rappresentano il numero di processi effettivamente in esecuzione (ad esempio, utilizzando una CPU), calcolati in media rispettivamente negli ultimi 1, 5 e 15 minuti.
http://www.linuxinsight.com/proc_loadavg.html