Balanceamento VMWare ESXi e IRQ

Balanceamento VMWare ESXi e IRQ

VMWare ESXi 4.1

Convidado: Kernel Linux 2.6.32 64 bits (tentei também mais antigo)

Na máquina virtual com várias CPUs, todas as interrupções (eth0,ata_piix) ficam presas à única CPU. Ao rodar no hardware puro, tudo fica bem equilibrado.

Tentei o driver de rede E1000, bem como o VMXNET3 paravirtualizado.

Alguma sugestão? É impossível obter uma afinidade normal de IRQ no ambiente virtualizado?

Responder1

Desculpe, mas esta é uma pergunta inútil, o modelo de hardware virtualizado é apenas isso, virtualizado. As interrupções não são reais, os adaptadores não são reais, qualquer 'balanceamento' que você fizer não é real, qualquer sobrecarga de vCPU 0 para isso não é real. Não há como fazer isso, de forma estável, sem passar duas NICs dedicadas usando VT-d e configurá-las adequadamente.

Responder2

Se possível, você poderia indicar alguns dos sintomas? Há uma degradação perceptível no desempenho (1 vCPU atrelada) quando ocorre uma interrupção pesada? Não tenho certeza da resposta oficial da VMware, mas eles dependem muito do fato de que todo tipo de 'mágica' acontece sem o conhecimento do sistema operacional convidado, então isso pode ser apenas uma espécie de abstração.

Responder3

Com o uso do e1000, é possível fixar essas interrupções em um único núcleo com "echo 3 > /proc/irq/$irq/smp_affinity" (3 == 00000010 == core1). com vmxnet3, ele permanece em core0, independentemente do que eu faça. O que quer que seja virtualizado ou não aqui, a carga da CPU no Linux com interrupções suaves e amigos comendo perto de 100% é realmente muito real.

informação relacionada