Como é gerada a variável NUMBER_OF_PROCESSORS env?

1

Eu tenho um par de HP BL460Cs que estão sendo testados para determinar qual processador queremos acompanhar quando iniciamos o upgrade de nosso equipamento, e há um problema com essa variável de ambiente em um deles.

O blade está executando o Windows 7 Enterprise e a variável NUMBER_OF_PROCESSORS reporta 14 processadores, mas há dois processadores de 14 núcleos instalados na máquina, portanto, devemos ver o dobro desse número. Consegui verificar se ambos os processadores são instalados e detectados pela máquina através do msinfo32 e do gerenciador de dispositivos.

Existe algo que poderia estar mexendo com a forma como a variável é gerada? Que processo o Windows ainda usa para definir esse número? Eu sei que ele pode ser editado, mas é apenas resetado após a reinicialização, então isso não ajuda muito. Qualquer insight que vocês tenham seria imensamente apreciado.

Atualização: decidiu recriar a máquina como o Windows 2008R2 para ver se ela mudaria ou corrigia o problema, mas ele persistiu. Portanto, a configuração tecnicamente incompatível provavelmente não é a causa.

    
por Justin 25.11.2014 / 18:31

4 respostas

5

Ok ... sou realmente curioso porque você deseja executar o Windows 7 nesses servidores em vez de edições do Windows server. Você pode dar mais detalhes sobre o seu ambiente?

Você está usando um HP ProLiant BL460c Gen9 servidor com dois muito high-end CPUs Intel E5-2697v3 de 14 núcleos .

Enquanto a HP fabricava servidores blade específicos para cada estação de trabalho até a linha Gen8 ProLiant, ainda não há Gen9 equivalente.

Neste ponto, suspeito de algumas coisas:

  • O Windows 7 Enterprise pode suportar dois soquetes de CPU e 64 núcleos lógicos, mas você só vê CPUs valendo apenas um soquete. Eu suponho que você esteja esperando ver 28 núcleos?

  • O seu sistema é totalmente atualizado do ponto de vista do sistema operacional? Se não, por favor, execute todas as atualizações do sistema operacional. Esta é uma nova CPU lançada há algumas semanas em uma plataforma de servidor muito nova. Duvido que você encontre outras pessoas com essa combinação de SO e hardware agora.

  • Você está atualizado sobre o firmware do sistema? Caso contrário, atualize-o.

  • HP não pretendia que esse modelo de servidor fosse usado com o Windows 7, portanto, isso eliminaria sua capacidade de executar agentes de gerenciamento de integridade e os drivers de valor agregado no hardware.

  • É possível usar Windows 2008 R2 drivers / firmware para o sistema, mas não é suportado.

por 26.11.2014 / 14:45
5

Tanto quanto sei, $ENV:NUMBER_OF_PROCESSORS é derivado do WMI, usando: Win32_ComputerSystem.NumberOfLogicalProcessors

Para aumentar a confusão, Win32_ComputerSystem também informa o número de CPUs físicas como NumberOfProcessors .

Você pode usar WMIC ou PowerShell para avaliar esses valores:

Get-WmiObject -Class Win32_ComputerSystem|Select NumberOf*

Se a sua máquina mostrar NumberOfProcessors como apenas 1, você poderá ter um problema de hardware ou de ativação de licença, pois somente as edições Enterprise, Professional e Ultimate do Windows 7 reconhecerão mais de uma CPU física

    
por 25.11.2014 / 18:42
4

O Windows 7 não é um sistema operacional suportado para ser executado nesse hardware , que é uma explicação boa o suficiente para mim por que não está relatando corretamente em seu hardware instalado. Os outros motivos da resposta de Mathias podem ser a causa também, mas, em geral, "configuração sem suporte" é boa o suficiente explicação para fins de administração de sistemas profissionais.

No que diz respeito aos sistemas Windows, apenas os sistemas operacionais Windows Server 2003 e posteriores são suportados nos BL460Cs e, na verdade, na maioria dos hardwares de servidores HP.

    
por 25.11.2014 / 18:47
1
Justin, eu postei um comentário mais cedo, mas ele não foi visto como uma resposta - no entanto, ele levou à solução para mim, então eu repostado abaixo com o funcionamento e a solução para ajudar você a entender a lógica do meu cenário, e você pode então julgar se você tem o mesmo.

Evening Justin eu vejo o mesmo problema com a HP blade proliant bl460c geração 9 windows windows 2012 r2. a geração 8 relatou tudo corretamente. Você encontrou uma solução. Minhas descobertas são 'echo% NUMBER_OF_PROCESSORS%' retorna uma resposta \ inconsistente incorreta em comparação com msinfo32, taskmanager e até Get-WmiObject -Class Win32_ComputerSystem | fl Número *

O número relatado é 8, o número correto é 16.

Havings discutidos com a HP e a Microsoft, isso parece ser devido aos nós NUMA e à intercalação.

foi resolvido inserindo os bies e definindo 'interleaving de nó' para desativado. depois disso, a variável '% number_of_processors%' retornou o mesmo número de processadores que as configurações lógicas do taskmaster. Então isso resolveu o problema para mim.

Para mais informações sobre as configurações da NUMA, consulte: link

    
por 07.01.2015 / 10:34