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

We are trying to determine the pros and cons of allotting different number of CPUs to VMs (VMware). We would like to see how the VMware kernel is dividing up the total number of cores/threads and determine the best architecture for our specific software configuration needs. Is anyone aware of how to look at IRQ interrupts within the ESXi kernel?

share|improve this question
if you have to many cpus/cores assigned to a vm the "cpu rdy" can go ballistic and actually slow down the vm's. So if the app isn't designed for multicore then don't do it. If it is multicore aware using multi cpu/cores sparingly. – tony roth Jun 13 '12 at 15:03
Tony - that's much less of a problem with newer version of ESX/ESXi - certainly that was an issue with v3.x but it's rarely an issue for most people these days. – Chopper3 Jun 13 '12 at 15:24
we are on esxi 4+ and even 5 and we still see the issue. – tony roth Jun 13 '12 at 15:46
of course this is on hosts that we are trying to squeeze way beyond normal! So yes your point is mostly correct. – tony roth Jun 13 '12 at 15:47
up vote 2 down vote accepted

I was unsure if VMware was emulating the CPU when I asked this question. Assuming it did we could look at the physical hosts interrupts to determine the best way to divide up our resources. However, there is no emulation that takes place at all. As it was explained, consider a virtual system board with a hole, the guest OS simply looks through the hole and sees one of the cores in the host server. This takes the pressure of VMware to change theCPU emulation software each time a vendor introduced new instruction sets. The other reasoning is it adds too much overhead. The VMkernel schedules simultaneously CPU cycles for multi-CPU VMs. When the VM requests for cycles the request goes into a queue for the host to process and the host waits until there are at least two cores or hyperthreads to schedule that VM.

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.