Estatística de uso da CPU no Monitor de Recursos do Windows Server 2008 R2

1

Estou tentando analisar o desempenho dos scripts HPC R por meio de Resource Monitor no Windows Server 2008 R2.

Eu me referi a este guia para obter mais informações na guia CPU de Resource Monitor , mas ainda tenho uma dúvida.

Este servidor (supostamente) tem 24 núcleos de CPU, de acordo com uma função de software em R que detecta núcleos e boca a boca. Em System Information mostra 2 entradas para o Processador:

NoscriptR,digoàfunçãoparautilizar2amenosdoqueonúmeromáximodenúcleosdisponíveis.NãoseiexatamentequaléadiferençaentreCore(s)eLogicalProcessor(s)emInformaçõesdoSistema,masaparentementeosentidodapalavra"núcleo" que R está usando relaciona-se com esses 24 Processadores Lógicos.

Há um algoritmo de longa duração que deve estar utilizando 100% de 22 (isto é, 24 -2) dos "núcleos" da CPU (ou processadores lógicos) no momento, o que seria cerca de 92% do uso máximo da CPU.

No entanto, em Resource Monitor , estamos apenas em 43 - 45% do uso da CPU, embora cada um dos 22 nós em uso tenha um valor de 4 listado em CPU (e 4 * 22 = 88% ). O que dá?

    
por Hack-R 24.03.2015 / 15:26

1 resposta

3

I'm not exactly sure what the difference is between Core(s) and Logical Processor(s) in System Information

Você tem dois processadores Intel. Em cada um desses chips, existem 6 núcleos físicos. Um núcleo físico é essencialmente um pacote de CPU independente e você pode empilhar vários núcleos em um único dado. Além disso, o Hyperthreading está habilitado, que é uma tecnologia da Intel que permite que um núcleo físico execute dois threads ao mesmo tempo. Então:

2 CPUs,

6 núcleos por CPU,

= 12 núcleos físicos totais.

O Hyperthreading dobra o número de processadores lógicos que o sistema operacional vê,

= 24 processadores lógicos no total.

Vale a pena notar que um núcleo Hyperthread não é tão poderoso quanto um núcleo físico. Depende da carga de trabalho exata, mas os Hyperthreads são uma determinada porcentagem menos poderosa que um núcleo físico completo.

No entanto, o sistema operacional os vê e os trata igualmente.

Por que seus scripts não conseguem utilizar totalmente seu poder de processamento, isso é uma depuração de código e precisamos ver o script. Ou pode ser o Rscript.exe definido com uma certa afinidade que permite que ele seja agendado em determinadas CPUs?

Não é possível dizer sem informações adicionais.

O que os scripts fazem? Talvez eles estejam afunilados aguardando algum outro recurso, como pacotes de rede, por exemplo, ou E / S de disco, e é por isso que eles não conseguem saturar a CPU. O problema é que as CPUs são rápidas. A CPU estará esperando praticamente qualquer outra parte do computador. E se os outros subsistemas envolvidos não conseguirem acompanhar, você não conseguirá maximizar sua CPU.

    
por 24.03.2015 / 15:47