Onde o comando top obtém todos os dados para a utilização da CPU?

7

Quando eu executo o comando top , a terceira linha é:

Cpu(s): 0.3%us, 0.3%sy, 0.0%ni, 99.2%id, 0.1%wa, 0.0%hi, 0.0%si, 0.1%st

De onde o comando top obtém esses dados? Obtém de /proc ?, se sim, qual é a localização exata?

    
por Sharvari Marathe 24.04.2013 / 03:13

2 respostas

4

Você está questionando a localização exata do uso da CPU. Isso é /proc/stat :

$ head -n 3 /proc/stat
cpu  1751981 185577 398478 28868975 69445 32 27028 0 0 0
cpu0 954878 88888 186567 14433502 19750 0 600 0 0 0
cpu1 797103 96688 211911 14435473 49694 31 26428 0 0 0

O formato é explicado na Documentação do Kernel ( filesystems/proc.txt ); Coloquei em negrito as abreviaturas top :

The very first "cpu" line aggregates the numbers in all of the other "cpuN" lines. These numbers identify the amount of time the CPU has spent performing different kinds of work. Time units are in USER_HZ (typically hundredths of a second). The meanings of the columns are as follows, from left to right:

  • user: normal processes executing in user mode
  • nice: niced processes executing in user mode
  • system: processes executing in kernel mode
  • idle: twiddling thumbs
  • iowait: waiting for I/O to complete
  • irq: servicing interrupts [hard interrupts hi]
  • softirq: servicing softirqs [soft interrupts si]
  • steal: involuntary wait
  • guest: running a normal guest
  • guest_nice: running a niced guest

Informações gerais sobre sua CPU podem ser obtidas de /proc/cpuinfo , mas isso não está relacionado ao uso da CPU.

    
por 24.04.2013 / 16:06
0

Procfs pode ser encontrado em /proc . Por favor, leia sobre isto: Explorando procfs

Procfs is a virtual file system in linux mounted in /proc, and serves multiple purposes including access to kernel information in userland or for debugging. One of the features which makes Linux special to me is access to process information as a text stream. A lot of linux commands (ps, top, pstree, etc.) rely on this filesystem for information.

Você pode procurar pelo código-fonte top , que pode ser encontrado no pacote coreutils GNU.

    
por 24.04.2013 / 03:25

Tags