VMWare ESXi和IRQ平衡

VMWare ESXi 4.1

游客:Linux内核2.6.32 64位(也尝试过)

在多CP​​U虚拟机中,所有中断(eth0,ata_piix)都卡在单个CPU上。 在纯硬件上运行时,一切都是平衡的。

尝试了E1000networking驱动程序以及准虚拟化的VMXNET3。

有什么build议么? 在虚拟化环境中,不可能获得正常的irq亲和力吗?

对不起,但这是一个毫无意义的问题,虚拟硬件模型就是虚拟化的。 中断不是真实的,适配器不是真实的,你做的任何“平衡”都不是真实的,任何vCPU 0的过载都不是真实的。 没有办法以稳定的方式做到这一点,没有两个专用的网卡通过VT-d传递并进行适当的configuration。

如果可能的话,你能表示一些症状吗? 在进行繁重的中断时,是否有显着的性能下降(1个vCPU挂钩)? 我不确定VMware的正式答案,但是他们严重依赖于客户操作系统不知道各种“魔术”的事实,所以这可能只是一种抽象。

使用e1000时,可以用“echo 3> / proc / irq / $ irq / smp_affinity”(3 == 00000010 == core1)将这些中断连接到单个内核。 与vmxnet3,它停留在core0无论我做什么。 无论是虚拟化还是非虚拟化,Linux上的CPU负载都是软中断,而且朋友的饮食接近100%是非常真实的。