0

I'm running FreeBSD 7.2 under VMware ESXi 3.5. Host has 2 physical CPUs and the BSD box is currently the only running VM. Only one virtual CPU is assigned to the VM.

When measuring CPU time of a specific program, I get very different results from time to time. Processor usage is reported differently by VMware, based on the system load. Is it possible to assign a constant share of a physical CPU to specific VM? I would like the CPU time to be more or less much constant. I tried setting CPU reservation when configuring VM in the VMware Infrastructure Client, but the CPU time still varies a lot.

Thanks in advance!

2 Answers2

2

The real (physical) CPU Time actually used will always reflect the demand required by whatever load is running within the guest, the reservation guarantees that no other VM (or the Hypervisor\Console) will deny that VM it's reservation but it doesn't mean that the CPU resources that are available will actually be used. The Reservation is more a logical fence around potential resources rather than an explicit assigned amount. That said reservation should be assigning the reserved resources pretty consistently even if the VM is doing nothing so when you say that the you are getting erratic CPU time measurements where are you measuring that? You cannot trust any numbers you get from within the VM even under reservations as processes that allocate resources generally play havoc with the internal timers within a VM, you are far better off looking at things from the Hypervisors perspective. For ESX 3.5 esxtop is your best place to start.

Helvick
  • 20,019
  • 4
  • 38
  • 55
0

I had this problem when I setup a MS SQL Server as a VM. Our server team told me there was no way to guarantee a specific percentage of CPU time to any one VM. Real CPU resources varied so widely (and response time because of it) that I ended up using a physical server.

mpkilroy
  • 178
  • 1
  • 1
  • 5