No Linux, como saber quantos núcleos da máquina estão ativos?

11

No Linux, como saber quantos núcleos da máquina estão ativos? Eu suponho que um teste para isso funcionaria para o Android também. Eu preciso saber se mais de um núcleo está ativo. Estava querendo testar isso fazendo com que um processo criasse muitos threads. É possível para um thread consultar em qual processador ele está? Dessa forma, pode-se dizer se vários núcleos serão usados sob carga pesada. Não tenho certeza se estou no caminho certo.

    
por likejiujitsu 24.01.2011 / 23:32

4 respostas

14

Você pode usar top para listar a utilização de cada núcleo. Pressione 1, se necessário, para dividir a linha da CPU em uma linha separada para cada núcleo.

Você também pode adicionar uma coluna que mostra o último núcleo usado para cada processo. Pressione f para exibir a lista de campos e, em seguida, j para ativar a coluna "P". Em seguida, pressione espaço para retornar à exibição ao vivo.

    
por 25.01.2011 / 04:38
5

ps tem um campo chamado psr para informar em qual processador um trabalho está sendo executado.

Então você poderia usar algo como:

ps -e -o psr= | sort | uniq | wc -l

Note que a simples execução de ps como este, naturalmente, fará pelo menos um núcleo ativo.

Provavelmente, é melhor executar isso:

tmp=/tmp/ps.$$
ps -e -o psr= > /tmp/ps.$$
sort -u "$tmp" | wc -l
rm "$tmp"

Dessa forma, o sort e o wc não aumentam a contagem.

    
por 24.01.2011 / 23:34
2

Tente o seguinte:

cat /proc/cpuinfo

Aqui está um link para um exemplo do Android em Java.

    
por 24.01.2011 / 23:34
1
htop

Este comando funciona bem tanto no Ubuntu quanto no centos e mostra graficamente quantos processadores e como eles estão sendo usados.

para centos:

yum install htop

para o Ubuntu:

apt-get install htop
    
por 21.12.2016 / 16:44

Tags