VMWare ESXi 4.1
ゲスト:Linuxカーネル2.6.32 64ビット(古いものも試してみました)
マルチCPU仮想マシンでは、すべての割り込み(eth0、ata_piix)がシングルCPUに固定されます。純粋なハードウェアで実行する場合、すべてのバランスが取れています。
E1000ネットワークドライバーと準仮想化VMXNET3を試しました。
助言がありますか?仮想化環境で通常のirqアフィニティを取得することは不可能ですか?
申し訳ありませんが、これは無意味な質問です。仮想化されたハードウェアモデルは、仮想化されたものです。中断は現実的ではなく、アダプターは現実的ではなく、実行する「バランシング」も現実的ではなく、このためのvCPU0の過負荷も現実的ではありません。 VT-dを使用して2つの専用NICをパススルーし、適切に構成しない限り、これを安定した方法で行う方法はありません。
可能であれば、いくつかの症状を示していただけますか?重い割り込みを実行すると、顕著なパフォーマンスの低下(1つのvCPUがペグ)がありますか? VMwareの公式の回答はわかりませんが、ゲストOSには知られていないあらゆる種類の「魔法」が発生するという事実に大きく依存しているため、これは一種の抽象化にすぎない可能性があります。
E1000を使用すると、「echo 3>/proc/irq/$ irq/smp_affinity」(3 == 00000010 == core1)を使用してこれらの割り込みを単一のコアに固定することができます。 vmxnet3では、私が何をしても、core0のままです。ここで仮想化されているかどうかに関係なく、ソフト割り込みと友人が100%近くを食べているLinuxのCPU負荷は非常に現実的です。