VMware Cloud Community
DFN
Contributor
Contributor

DRS and Processor Utilization

Systems

3 blades, each with 8 CPU x 2.33 Ghz

9 Windows 2003 hosts each configured for 1 processor

All of this contained in a VM cluster (DRS and HA)

So basically on my IIS servers I am seeing them peak at 2.33 Ghz. I am trying to figure out how they can utilize the resource pool to go beyond this. Am I missing something? Do I just need to add more processors to the VM? Is it true that basically the guest will only use what you tell it it "physically" has. In other words I basically have 888 processors available. I can essentially assign either 24 VMs one proc each and they won't share or go beyond 2.33 or I can build 12 VMs with two procs each and they will go up to 4.66 Ghz. But if I build 24 VMs with 2 procs each they will all have the capacity to go up to 4.66 Ghz but will need to start "sharing" because they are over allocated now? AM I understanding this correctly??

0 Kudos
3 Replies
azn2kew
Champion
Champion

I would recommend you build single vCPU for all your VMs and than expand when required. You did you not mention amount of memory involve and its very critical piece. I would start each VM with 1GB RAM/1vCPU and than give more memory if you need.

You can neither configured DRS to fully automate your resources so it can be dynamically allocated them across. So you don't have to spend time managing the resources with reservation, limits and etc...Keep in mind, if you play with reservation and limits, if your VMs lack of resources than they can't boot due to lack of resource reservation.

If you found this information useful, please consider awarding points for "Correct" or "Helpful". Thanks!!! Regards, Stefan Nguyen VMware vExpert 2009 iGeek Systems Inc. VMware vExpert, VCP 3 & 4, VSP, VTSP, CCA, CCEA, CCNA, MCSA, EMCSE, EMCISA
0 Kudos
Rodos
Expert
Expert

DFN, a vCPU can only use up to the speed/processing power of a single core on the pCPU. If you need to give more resource to a machine you can assign in another vCPU as long as the OS supports SMP. If its a windows box don't forget to update the HAL.

However don't allocate more than one vCPU to a VM unless it needs it or will use it. VMs with multiple vCPUs can be harder to schedule. If the VM is not going to use it you might as well let that core service some other VM.

It is a common misunderstanding with resource pools that they combine CPUs to make much faster ones, thats not the case.

Hope that helps.

Considering awarding points if this is of use

Rodos {size:10px}{color:gray}Consider the use of the helpful or correct buttons to award points. Blog: http://rodos.haywood.org/{color}{size}
0 Kudos
RParker
Immortal
Immortal

I can essentially assign either 24 VMs one proc each and they won't share or go beyond 2.33 or I can build 12 VMs with two procs each and they will go up to 4.66 Ghz

This is an incorrect statement. The only result will be you have 2 processors each at the max core, which is 2.33Ghz, but you can't combine processing power to get double the speed of the processor. Even the best multi-threaded, SMP programs can really only get about 80% use out of the other processor, because the fact of the matter is you can't design a program to get a true 50/50 split out of the processors, one of the processors will end up being the "default" for a thread or process, and the majority of processes and threads will use the "default" CPU.

Is it true that basically the guest will only use what you tell it it "physically" has.

Yes, that's basically how it works. You give a VM the euivalent of 1 processor or the equal amount of time per vCPU, but its based upon a schedule.

But if I build 24 VMs with 2 procs each they will all have the capacity to go up to 4.66 Ghz but will need to start "sharing" because they are over allocated now?

Well what will happen is if your VM's start to become busy, and use more CPU, then your server will become overallocated. This is where resource pools come into play. You can divide the VM's into different groups so no 1 group can over use the machine. The pool is a limit for the entire group, so if you assign say a limit of 4.66Ghz to the group, any or all of the VM;s in that group can't use more than the pool at any given time, so if 1 VM uses the equivalent of 2 vCPU @ 2.33Ghz, the rest of the VM's in that pool will suffer, but if 2 VM's each with 1vCPU are pegged on the CPU, those 2 VM's will use up the resource assigned to that pool. You should only assign more CPU if you are sure your OS/applications can utilize SMP, otherwise adding more CPU just takes more overhead for the ESX to manage, and you won't see any increase in performance. If you assign too many dual/quad vCPU VM's you can actually hurt performance of the host and the other VM's, so multiprocessor VM's should be treated with care and used with caution.

0 Kudos