Você deseja ler as primeiras linhas de /proc/stat
. Você precisará lê-lo duas vezes, um intervalo de tempo medido e subtrair o primeiro conjunto de números do segundo. As linhas são assim:
cpu 1526724 408013 600675 541100340 2861417 528 14531 0 0 0
cpu0 344507 77818 251244 134816146 1119991 324 13283 0 0 0
cpu1 502614 324065 179301 133991407 1631824 136 906 0 0 0
cpu2 299080 3527 79456 136144067 103208 59 255 0 0 0
cpu3 380521 2602 90672 136148719 6393 7 86 0 0 0
intr 2111239193 344878476 16943 ...
A primeira linha é agregada para todos os núcleos. As próximas linhas mostram cada núcleo. Quando você vê a linha que começa com intr
, você sabe parar de analisar.
Cada número é a quantidade de tempo que a CPU gastou em um determinado estado. As unidades são normalmente centésimos de segundo. Os campos são user
, nice
, system
, idle
, iowait
, irq
, softirq
, steal
, guest
e guest_nice
.
A documentação autoritativa é, obviamente, o código-fonte. Se você tiver uma cópia do código fonte do kernel do Linux, olhe para fs/proc/stat.c
, particularmente a função show_stat
.