
Quando executo o topo, mostro CPU 0-7. Quando eu faço:
cat /proc/cpuinfo | grep "cpu cores" | uniq
Eu recebo:
cpu cores : 4
Se eu usar o grep "id físico", tenho 1.
Estou pensando que meu comando está errado e top está certo. Esta não é uma VM e é um servidor físico, RedHat. O que estou fazendo de errado?
Não tenho certeza se eles respondem:
Como saber o número de núcleos de um sistema no Linux?
Número de processadores em /proc/cpuinfo
Editar: estou correto nesse ID físico, se mostrar apenas 1, então tenho um chip físico na placa-mãe?
Editar: é uma CPU Intel (R) Xeon (R) X5560 a 2,80 GHz, mas o ID físico é 1 e pensei que seria 0, mas não há ID físico 0 no cpuinfo.
Editar: se for importante, estou tentando descobrir o licenciamento onde eles fazem 0,5 da contagem principal.
Responder1
O X5560 é um únicolasca. Se parece com isso:
grep "physical id"
está dizendo que você tem UM processador físico instalado.
Se você tirar o dissipador de calor do topo você pode ver isso - um único físicomorrer(virado para baixo):
Se você pudesse remover esse dado e virá-lo, ficaria assim:
Nesse único dado físico há quatronúcleos físicos da CPUconstruído no silício:
grep "cpu cores"
está lhe dizendo que seu processador possui quatro núcleos físicos integrados.
Cada núcleo é um único processador com uma unidade de ponto flutuante, um número de unidades de execução inteiras, um par de pilhas de registradores e alguma outra magia que permite que cada núcleo execute efetivamente dois fluxos de instruções independentes (threads) por vez.
top
está lhe dizendo que todos os processadores e núcleos do seu computador, coletivamente, podem executar oito fluxos de trabalho independentes por vez - está lhe dizendo que o sistema operacional é capaz de agendar oito threads simultâneos para execução a qualquer momento.
Responder2
Qual CPU você está usando? Quantos threads estão presentes por núcleo físico?
cat /proc/cpuinfo
mostra o número de núcleos físicos enquanto top
mostra o número total de threads presentes.
Acho que sua CPU possui 4 núcleos físicos e 2 núcleos lógicos por núcleo físico. Então está top
mostrando 8.
Além disso, o conteúdo /proc/cpuinfo
depende um pouco da implementação. Como no shell do Android com root, o cpuinfo
arquivo não contém nenhum termo cpu cores
.
No entanto, em cpuinfo
cada thread é nomeado como processor : X
, onde X
está o thread no. Portanto, o último thread não deve ser igual à top/htop
saída.
O resultado de nproc --all
também deve ser consistente comtop/htop
Responder3
top
mostra uma “CPU” por CPU lógica; no x86, esse é o produto do número de soquetes no sistema, pelo número de núcleos físicos por soquete, pelo número de threads por núcleo.
A cpu cores
entrada em /proc/cpuinfo
, novamente em x86, mostra o número de núcleos físicos. Para encontrar o número de núcleos lógicos, conforme usado em top
, você deve observar o siblings
valor:
cat /proc/cpuinfo | grep "siblings" | uniq
Isto é descrito em detalhes nodocumentação do kernel.
lscpu
fornece informações sobre a(s) CPU(s) instalada(s) que são mais fáceis de entender do que /proc/cpuinfo
(ou melhor, apresentam as mesmas informações de uma forma mais simples).
Responder4
cpuinfo mostra os núcleos reais, enquanto htop/top mostra os núcleos e threads como núcleos. Você provavelmente tem 4 núcleos e 4 threads, por isso.