Como determinar o número de CPUs físicas no Windows e no Linux

5

Ao executar cat /proc/cpuinfo no Linux, uma variedade de informações é retrocedida. Por exemplo:

> cat /proc/cpuinfo
processor   : 0
vendor_id   : GenuineIntel
cpu family  : 6
model       : 15
model name  : Intel(R) Xeon(R) CPU            5130  @ 2.00GHz
stepping    : 6
cpu MHz     : 1995.069
cache size  : 4096 KB
physical id : 0
siblings    : 2
core id     : 0
cpu cores   : 2
fpu     : yes
fpu_exception   : yes
cpuid level : 10
wp      : yes
flags       : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm syscall nx lm constant_tsc pni monitor ds_cpl vmx tm2 cx16 xtpr lahf_lm
bogomips    : 3991.76
clflush size    : 64
cache_alignment : 64
address sizes   : 36 bits physical, 48 bits virtual
power management:

processor   : 1
vendor_id   : GenuineIntel
cpu family  : 6
model       : 15
model name  : Intel(R) Xeon(R) CPU            5130  @ 2.00GHz
stepping    : 6
cpu MHz     : 1995.069
cache size  : 4096 KB
physical id : 3
siblings    : 2
core id     : 0
cpu cores   : 2
fpu     : yes
fpu_exception   : yes
cpuid level : 10
wp      : yes
flags       : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm syscall nx lm constant_tsc pni monitor ds_cpl vmx tm2 cx16 xtpr lahf_lm
bogomips    : 3989.46
clflush size    : 64
cache_alignment : 64
address sizes   : 36 bits physical, 48 bits virtual
power management:

Primeiro, o que tudo isso realmente significa? Eu vejo que eu tenho um processador 0 e processador 1. Isso significa que o Linux está relatando ambos os núcleos da CPU, ou, uma vez que é uma VM, os dois que eu acontecem ter agora mesmo (mesmo se eles estiverem em CPUs fisicamente diferentes)?

Em segundo lugar, como posso obter um despejo de informações semelhantes da linha de comando no Windows?

Em terceiro lugar, existe uma maneira de usar qualquer plataforma para determinar o número de núcleos de CPU físicos versus total ?

    
por warren 09.09.2010 / 20:22

3 respostas

7

Para responder sua primeira pergunta: link descreve detalhadamente toda a saída do cpuinfo com alguma discussão interessante após o artigo.

No seu caso, está relatando que sua VM está configurada para se mostrar no SO como uma VM de dois núcleos físicos. O metal nu sob a VM pode ser 1 core ou 100 núcleos, mas no que diz respeito ao SO na VM, você tem uma máquina com dois processadores físicos com os quais ele pode brincar. Ele não sabe nada sobre como os encadeamentos que ele atribui a esses processadores estão sendo executados no hardware físico abaixo da VM.

Para obter informações semelhantes de um shell do Windows CMD, você pode tentar o comando systeminfo de um shell CMD. Ele exibe muito mais do que o material /proc/cpuinfo no Linux, mas também não tem tantos detalhes sobre os processadores em si.

Eu não sei a resposta para sua terceira pergunta, desculpe.

    
por 09.09.2010 / 20:39
7

Re terceira questão:

no cpuinfo, existe um campo "id físico", único por CPU física. Núcleos da mesma CPU são reportados como processadores diferentes com o mesmo ID físico, enquanto processadores fisicamente separados terão diferentes identificações físicas.

Observe que, se você estiver em uma VM, não poderá saber nada sobre o hardware real (CPU etc.). Tudo o que você sabe é o que a VM informa. Portanto, por exemplo, se sua máquina física tiver 1 CPU Quad-core e sua VM estiver configurada para relatar 2 CPUs de um único núcleo, você verá duas CPUs de núcleo único em cpuinfo (ou seja, 2 processadores com identificação física diferente).

    
por 10.09.2010 / 20:39
1

Um forro:

dmidecode | grep CPU | grep -i 'socket designation' | wc -l

Esse comando analisa as informações abrangentes fornecidas pelo dmidecode para determinar o número de processadores físicos com base no valor exclusivo de 'designação de soquete' atribuído a cada cpu físico. Você pode usá-lo para obter um número de CPUs físicas em um determinado host. Tentando cat / proc / cpuinfo nem sempre funciona. Em um PowerEdge R420 com servidor 2x6C 2.4GHz, o cpuinfo reportou erroneamente um processador.

    
por 09.05.2014 / 22:35