Kermitdafwog
Contributor
Contributor

Performance considerations


Hello

A bit of background....

We run something like a private cloud -  there's no self provisioning or anything but there's a shared infrastructure which includes 30 ESXi 4.1 hosts, shared storage and physical blades and associated networking and SAN.

We have been umming and aahing over the best way to utilise resource pools in our environment; currently we reserve what we believe to be the minimum RAM and CPU per VM (586Mhz and 820MB) and then each resource pool has a reservation set to half of the sum of the vRAM and CPU collated to the VMs and the unlimited AND expandable are ticked.  We set the pools in this way as this is how it was designed years ago and only now are we getting round to making changes as we are preparing to migrate to ESXi 5.

Our charging mechanism works on selling CPU cores (full or part) so a customer can request 0.1 to 4 cores.  If they request, say 0.2 core (for a DC or something), then they will get a reservation of 586Mhz and a limit set to 586Mhz.  I was reading an article by Frank Denneman which seemed to suggest that selling part cores like this was really bad....

Look at a vCPU limit as a restriction within a specific time frame. When a time

frame consists of 2000 units and a limit has been applied of 300 units it will

take a full pass, so 300 “active” + 1700 units of waiting before it is scheduled

again.

So, in our scenario, if we limit VMs to use only a certain amount of clock cycles, what happens to the rest of the available clock cycles in ton that particular core?  Can other VMs who are set to schedule CPU time able to use the remaining cycles or are they simply wasted and ALL VMs have to wait for their turn to schedule for the amount of time they are limited?

We are considering removing the limits on the CPU for all VMs after reading the statement above, just want to see what the communities thought before we discuss it internally.

RAM limits and reservations etc make complete sense to me but the CPU bit is a bit more difficult!

Thanks

Terry

0 Kudos
3 Replies
weinstein5
Immortal
Immortal

So, in our scenario, if we limit VMs to use only a certain amount of clock cycles, what happens to the rest of the available clock cycles in ton that particular core?  Can other VMs who are set to schedule CPU time able to use the remaining cycles or are they simply wasted and ALL VMs have to wait for their turn to schedule for the amount of time they are limited?

No those cycles are not watsed - they will be used by other VMs -

If you find this or any other answer useful please consider awarding points by marking the answer correct or helpful
0 Kudos
ElevenB2003
Enthusiast
Enthusiast

This might be a good use case for something like vCloud Director: VMware vCloud Director: Secure Private Clouds, Infrastructure as a Service

0 Kudos
Kermitdafwog
Contributor
Contributor

Hi Weinstein

Thanks for replying

Happy that other VMs can use the remainder of the clock cycles but the first VM who gets the scheduler who uses 300Mhz of a 2000Mhz processor, does that VM have to wait for 1700Mhz until it can scheduler again on the CPU?

Thanks

Terry

0 Kudos