Equilibrio de VMWare ESXi y IRQ

VMWare ESXi 4.1

Invitado: Linux kernel 2.6.32 64bit (probado más viejo también)

En la máquina virtual de varias CPU, todas las interrupciones (eth0, ata_piix) están pegadas a la única CPU. Cuando se ejecuta en el hardware puro, todo está bien equilibrado.

Probado controller de networking E1000, así como paravirtualized VMXNET3.

¿Alguna sugerencia? ¿Es imposible get una afinidad de irq normal en el entorno virtualizado?

Lo siento, pero esto es algo de una pregunta inútil, el model de hardware virtualizado es sólo eso, virtualizado. Los interupts no son reales, los adaptadores no son reales, cualquier "balanceo" que hagas no es real, cualquier sobrecarga de vCPU 0 para esto no es real. No hay manera de hacerlo, de forma estable, sin tener dos NIC dedicados pasados ​​a través de VT-d y configurar adecuadamente.

Si es posible, ¿podrías denotar algunos de los síntomas? ¿Hay una notable degradación del performance (1 vCPU vinculada) cuando está haciendo su interrupción pesada? No estoy seguro de la respuesta oficial de VMware, pero dependen en gran medida del hecho de que todo tipo de "magia" ocurre sin saberlo para el sistema operativo invitado por lo que esto puede ser sólo una abstracción de las classs.

Con el uso de e1000, es posible fijar esas interrupciones a un solo núcleo con "echo 3> / proc / irq / $ irq / smp_affinity" (3 == 00000010 == core1). con vmxnet3, permanece en core0 lo que hago. Lo que sea virtualizado o no aquí, la carga de la CPU en Linux con interrupciones suaves y amigos que comen cerca del 100% es muy real.