Planejamento de CPU do Microsoft Hyper-V Server e arquiteturas de memória NUMA

2

Suponho que essa pergunta possa se aplicar a qualquer tecnologia de virtualização, mas estou tentando entender alguns dos detalhes específicos do Microsoft Hyper-V Server e como os recursos da CPU virtual são agendados em recursos da CPU física.

Parece que o Hyper-V Server agenda CPUs virtuais de todas as VMs de maneira circular em todos os recursos de CPU físicos disponíveis usando o fatiamento de tempo. Por padrão, todas as VMs são programadas igualmente, mas as prioridades e os limites da CPU da VM podem ser ajustados para alterar com eficácia a frequência com que são agendados.

Há alguns detalhes ausentes aqui que não consigo encontrar em nenhum lugar on-line. Isso é mais apenas para curiosidade pessoal, mas pode afetar a maneira como equilibro VMs em hosts físicos no futuro.

(1) A carga da CPU em uma VM altera sua prioridade efetiva em comparação às VMs ociosas? Suponha que eu tenha duas VMs, cada uma com uma CPU virtual, disputando um único núcleo físico. Se a VM 1 tiver uma alta carga de CPU e a VM 2 estiver inativa, das N fatias disponíveis em um determinado período de tempo para o recurso único, ambas as VMs receberão fatias de ~ N / 2? Parece que seria melhor que a VM 1 recebesse mais perto de N fatias.

(2) O Hyper-V mantém automaticamente algum tipo de afinidade de CPU física? Suponha que eu tenha uma única VM, dois processadores físicos e acesso não uniforme à memória (em que cada processador físico possui sua própria memória local que é mais rápida de acessar). O Hyper-V agenda as CPUs virtuais da VM em ambos os processadores físicos? Parece que, se a memória alocada da VM couber inteiramente em um local da memória, seria ideal programar a VM nessa CPU física em vez de nas duas CPUs.

    
por Michael Petito 09.02.2011 / 18:24

1 resposta

1

(1) O Hyper-V dará a cada um de seus processadores virtuais hipotéticos uma chance igual de execução, já que seus pesos são os mesmos. No entanto, quando o VP da VM 2 acende seu tempo ficando ocioso, esse tempo livre será alocado para o VP da VM 1. Assim, na prática, a VM 1 usará a maior parte da capacidade da CPU.

(2) Sim, o Hyper-V mantém um "processador físico ideal" associado a cada processador virtual. Um VP tenderá a ser programado em seu processador físico ideal. Além disso, o processador físico ideal para os processadores virtuais de uma VM, se possível, estará no mesmo nó NUMA físico da memória atribuída à VM. Para uma VM com vários processadores virtuais, os VPs tenderão a ter processadores físicos ideais separados, mas dentro do mesmo nó físico NUMA.

Observe que as VMs maiores que um nó NUMA físico abrangerão mais de um nó, levando a um agendamento e desempenho não determinísticos.

    
por 10.02.2011 / 01:32