Um único Virtual Core em uma VM pode usar mais de um núcleo físico?

3

Eu tenho um servidor rodando cpu dual quad core com hyper threading.

Temos uma VM do Windows 2003 e ela tem um único núcleo.

quando uso o prime95, percebo que ele atinge o máximo de 2,3 Ghz (cada Core tem 3ghz nesse servidor).

existe mesmo assim que o ESXi pode permitir que uma única CPU virtual use mais do que um núcleo físico?

Eu sei que é estranho, mas é só tocar junto:)

Obrigado.

    
por Luma 05.11.2010 / 21:29

2 respostas

10

É tanto sim quanto não, tanto quanto eu entendo, mas não sim pelas razões que você quer. Aquela permissão de 1 vcpu que você deu à sua máquina virtual não significa que ela permanecerá sempre no núcleo # 2 da cpu # 1, mas significa que ela nunca usará o > 1 núcleo.

Como você tem apenas uma máquina virtual em seu servidor, não está vendo a carga de trabalho distribuída em vários núcleos porque o planejador de CPU nunca considera necessário movê-la desse núcleo único. No entanto, se você fosse começar a hospedar mais máquinas que veem cargas de trabalho variadas e, mesmo se todas elas tivessem uma única vcpu, então qualquer uma das máquinas pode não estar necessariamente sendo executada no mesmo núcleo físico em todos os momentos.

O trabalho pode ser distribuído em vários núcleos, dependendo de como o escalonador de CPU do ESXi julgar adequado. Dito isto, a VMware ainda não consegue dividir uma única vcpu em dois núcleos físicos ao mesmo tempo. Tudo o que pode fazer é migrar essas vcpus para outro núcleo físico se o balanceador de carga achar que é vantajoso fazê-lo, ou seja, se um núcleo ficar sobrecarregado com o trabalho e outro núcleo estiver inativo, o ESX migrará o vcpu para esse núcleo inativo. / p>

Gostaria de ler este artigo a partir da página 6 e mais na seção 3.3.1 na página 10 se você realmente quiser ver como o design funciona: link

Isso não é um limite do VMware, mas de como os processadores e o software funcionam em geral. A idéia que você tem é uma espécie de cálice sagrado de computação multi-cpu, conseguindo que a carga de trabalho de um único aplicativo encadeado seja distribuída em vários núcleos para aumentar o desempenho. É praticamente o oposto do hyperthreading: em vez de fazer com que um núcleo faça o trabalho de dois núcleos para aumentar a largura de banda de execução paralela, você teria dois núcleos para fazer o trabalho de um núcleo duas vezes mais rápido. De qualquer forma, isso é provavelmente muito mais técnico do que você queria que fosse.

tl: Não, mas se você descobrir como você pode não querer contar a todos na cidade como fazê-lo, a menos que eles estejam oferecendo um par de dólares:)

    
por 05.11.2010 / 22:14
0

Não. Eu não posso. Não é uma bala mágica que irá de alguma forma mudar a arquitetura do processador.

    
por 05.11.2010 / 21:50