Server Fault is a question and answer site for system and network administrators. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

VMWare ESXi 4.1

Guest: Linux kernel 2.6.32 64bit (tried older as well)

In multi-CPU virtual machine all interrupts (eth0,ata_piix) are stuck to the single CPU. When running on the pure hardware, everything is balanced ok.

Tried E1000 network driver as well as paravirtualized VMXNET3.

Any suggestions? Is it impossible to get a normal irq affinity in the virtualized environment?

share|improve this question
Are you having an actual problem caused by this? – RobM Feb 7 '11 at 23:25

Sorry but this is something of a pointless question, the virtualised hardware model is just that, virtualised. The interupts aren't real, the adapters aren't real, any 'balancing' you do isn't real, any overload of vCPU 0 for this isn't real. There's no way to do this, in a stable way, without having two dedicated NICs passed-through using VT-d and configuring it appropriately.

share|improve this answer
I understand, the virtual interrupts are just a threads in the real OS. And when virtual irqs aren't balanced, they're stuck to the single thread and single physical CPU core. – disserman Mar 10 '11 at 14:39
If you have the vmtools installed the they're not even pretend interrupts, all traffic is passed through to the host using a private semaphore-like API that has very little vCPU 0 impact, if you're seeing high vCPU 0 load simply because of 'interrupts' I'd suggest you have a different kind of problem than the traditional interrupt/RRS-type problem and maybe call VMWare. – Chopper3 Mar 10 '11 at 14:55

If possible, could you denote some of the symptoms? Is there a noticeable performance degradation (1 vCPU pegged) when its doing its heavy interrupt? I'm not sure the official VMware answer but they rely heavily on the fact that all sorts of 'magic' happens unbeknownst to the guest OS so this may just be an abstraction of sorts.

share|improve this answer

With using e1000, it's possible to pin those interrupts to a single core with "echo 3 > /proc/irq/$irq/smp_affinity" (3 == 00000010 == core1). with vmxnet3, it stays at core0 whatever I do. Whatever's virtualised or not here, the CPU load on Linux with soft interrupts and friends eating close to 100% is very real indeed.

share|improve this answer

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.