O uso da CPU é calculado e rastreado pelo kernel. Os métodos e processos exatos envolvidos estão muito além do escopo deste site (ServerFault).
Se você está se perguntando o que os valores representam, eu tirei esta lista legal do site da IBM, embora o artigo completo seja uma boa leitura:
- us - Porcentagem de tempo de CPU gasto no espaço do usuário.
- sy - Porcentagem do tempo de CPU gasto no espaço do kernel.
- ni - Porcentagem de tempo de CPU gasto em processos de baixa prioridade.
- id - Porcentagem de tempo de CPU gasto inativo.
- wa - Porcentagem do tempo de CPU gasto em espera (no disco).
- hi - Porcentagem de tempo de CPU gasto com interrupções de hardware.
- si - Porcentagem de tempo de CPU gasto com interrupções de software.
(de IBM ... porque ele é apenas incorporado em um guia Java SDK está além de mim)
top
obtém suas informações do diretório / proc, que é um diretório especial usado para consultar o kernel, entre outras coisas, estatísticas de processo. man proc
pode fornecer mais informações sobre como o / proc está configurado.