O que significa cpu-pinning no contexto do hypervisor KVM com várias máquinas virtuais

1

Estou pensando em configurar um hipervisor KVM para ter algumas máquinas virtuais.

O hipervisor KVM possui 8 núcleos físicos (16 com HyperThreading). Eu quero criar 8 máquinas virtuais, mas não consigo entender a diferença que o cpu-pinning tem sobre ele.

Qual será a diferença quando fixar cada VM em um núcleo diferente, quando fixar todas as VMs em todos os núcleos (definindo a afinidade como 0-15)?

Terá algum benefício no desempenho?

Eu acho que terei alguns benefícios de cache, mas haverá uma diferença se eu quiser executar o tráfego para todas as VMs?

    
por Akshya11235 12.08.2014 / 03:42

2 respostas

2

A fixação da CPU garante que uma VM obterá apenas o tempo de CPU de uma CPU específica ou conjunto de CPUs. A menos que você tenha um motivo muito específico para fixar, geralmente não há necessidade de fazer isso.

    
por 12.08.2014 / 15:27
1

Tenho certeza de que você pode ter um ganho de desempenho se fixar cada VM em núcleos de CPU específicos, além de restringir o hipervisor a um ou dois outros núcleos.

Isso permitiria que suas VMs se beneficiassem dos caches L1 e L2 que são específicos da CPU e não serão incomodados por interrupções de controladores de armazenamento e NICs.

Por outro lado, espero que o hipervisor já se esforce para direcionar principalmente eventos de CPU da mesma CPU virtual para o mesmo núcleo físico e duvido que seria um ganho significativo de desempenho se você manualmente forçar algo mais rigoroso.

As desvantagens disso também são bastante óbvias: quando você atribui mais núcleos aos convidados virtuais do que os núcleos físicos disponíveis, é improvável que a pinagem manual da CPU faça um trabalho melhor que o do hipervisor. Também será um inferno quando você usar migrações ao vivo.

    
por 12.08.2014 / 17:32