Hello,
I have a VM that is running near CPU capacity all day long. I am looking at allocating more resources to alleviate the demand.
My question is; Will I be achieving the same thing if I create a Resource Pool as compared with using DRS? My goal is to provide more CPU capacity for this specific host. I am not certain how creating a Resource Pool differs from using DRS? Other than DRS seem to manage resources dynamically.
Note: Discussion successfully moved from VMware ESXi 5 to vMotion & Resource Management
DRS will dynamically rebalance the workloads across the hosts in the cluster. You want to give the VM more CPU resources, your best bet would be to use resource pools - you will need to move all the vm's from the "root" resource pool into configured resource pools. But we need to be clear, this is not increasing the amount of CPU cycles - you cannot have any more processing power than the physical processors in the hosts , what you are doing is prioritising the VM's access to the available cpu resources and able to perform tasks such as limiting the low utilisation VM's to 1Ghz CPU, while the resource intensive ones can have the full physical CPU - 2.5, 3Ghz..etc
You could try giving the VM additional vCPU's if the applications support it.
Hi Leo,
I'm not entirely clear what you are trying to ask, allow me to ask some questions on bits of your question to get a better understanding. Anwers and questions are inline:
I have a VM that is running near CPU capacity all day long. I am looking at allocating more resources to alleviate the demand.
You can increase the resources for this virtual machine by adding more virtual CPUs to the virtual machine. If you have set a limit on the virtual machine I would suggest you remove this limit. Do you see that the virtual machine is getting the resources it demands? If it does not get the resources it wants a CPU reservation might be applicable to your situation. This article might help you better understand CPU reservations: http://frankdenneman.nl/2010/06/08/reservations-and-cpu-scheduling/
My question is; Will I be achieving the same thing if I create a Resource Pool as compared with using DRS?
A resource pool is a construct of a DRS cluster. It allows you to compartimentalize resources of the DRS cluster and have that consumed by resources.
Without DRS resource pool are not available. DRS allows to dynamically place the vm's to host to meet their demand.
My goal is to provide more CPU capacity for this specific host.
With host you mean the virtual machine? If so, a resource pool would not help if the ESX host is suppling all the resources a virtual machine demands.
The only way you can increase CPU capacity is to expand the VM configuration by adding more CPU resources.
I am not certain how creating a Resource Pool differs from using DRS? Other than DRS seem to manage resources dynamically.
Correct DRS attempts to provide the resources a virtual machine demands, by moving VMs to host to get an overal load balance. This way DRS attempts to match the dynamic demand of the virtual machines with the resource utilization of the hosts. A resource pool is a priority construct. It provides resources to its child objects (virtual machines or other resource pools) it comparimentalizes resources of a DRS cluster. By setting a reservation on a resource pool, the virtual machines inside the resource pool are always guaranteed to the availability of these resources.
ill I be achieving the same thing if I create a Resource Pool as compared with using DRS?
Like I mentioned before, resource pool are a construct of DRS, it cannot exist without DRS.
My goal is to provide more CPU capacity for this specific host. I am not certain how creating a Resource Pool differs from using DRS? Other than DRS seem to manage resources dynamically.
See above, resource pools provide resources to virtual machines, that are available in the cluster.
To ensure the availability of resoures, one can set reservation either on resource pool level or virtual machine level. Both guarantee the availability of resources but are different constructs for management purposes. Resource reservations in a resource pool are shared across the virtual machines inside the resource pool, where a reservation on a virtual machine is applicable only to that specific virtual machine
refering to your query
I am looking at allocating more resources to alleviate the demand. - this will resolve the issue for one VM. but other vm will get affected.
So by using resource pool, you can control and prioritize the CPU/RAM for VMs inside that host.
My question is; Will I be achieving the same thing if I create a Resource Pool as compared with using DRS?
No, it wont solve your complete problem, So by using resource pool, you can control and prioritize the CPU/RAM for VMs inside that host, by giving more shares will solve issues for few vms, but will affect other vms in that host. If all the resource in a host is in crunch, then the DRS comes in to picture, the DRS will move the vms to other hosts.
So resouce pools and DRS will work together... to efficently manage the CPU/RAM in the esxi cluster.
My goal is to provide more CPU capacity for this specific host. I am not certain how creating a Resource Pool differs from using DRS? Other than DRS seem to manage resources dynamically. - Answers are above.
Thank you,
I understand that I cannot give more (CPU) than what is physically available. My dilemma is that I have one VM that is dedicated to logs & reports that is just getting hammered (during business hours). The VM runs near 100% all day long. However, when I review the resources utilization on the Host, the CPU is consistently using about 10% of the CPU resource. I wanted to know if I could allocate more of the Host CPU power towards this specific VM?
Regarding additional vCPU's, is this something that can only be accomplished when creating the VM? Can I add vCPU's to an existing VM? The only way I can determine if applications support it would be by trail and error?
you can add more vcpus...at any time..depending upon the esxi and OS license you can do it on live.
else you need to off the vm and give more vcpu..if the esx host is below 50 % 24/7 then that means the host has lot of cpu unused.
so you can add more vcpu to this vm, now almost all the application support multi processing...no issues you can safely give more vcpu also check with the software vendor..any way if the esx host has lot of free resources.. you can give.
Thanks again everyone,
Frank, thanks for your article - good read!
However, I am still having problems understanding this even after setting up a Resource Pool. Here is what I have:
I don't understand how to determine if the resource pool is working?
My question is how do I get my VM to utilize more of the Host available resource? How can I tell how much is it actually using?
Hello,
I here is an analysis on what I have done in the last few days:
I have been reading up on CPU-Constrains and how to resolve them. My original understanding was if I have a VM that has a CPU running at capacity, I can than allocate more resources from the Host. Yes, providing that the resource is available.
Now I have three other VM's on this same host. My question is; if I remove any reservations on these other VM's, those resources will be available to the resource pool?
However, I have been attempting to do so to no avail and I have seen no change in performance. I could not verify using Perfmom DLL - another issue I am attempting to resolve. The only method I was able to use to improve performance was to add vCPU's. I'll check next week to determine the gain. But, should my VM been able to take advantage of the Host CPU resources without having to add additional vCPU's? :smileyconfused:
Hi All..
According to my humble understanding..
First you have to add more vCPU to give the VM more CPU power then reserve the same amount on its resource pool (as I think if you reserved a CPU more than what is configured as vCPU it'll not be useful). After that, you give it high share of CPU and an appropriate limit which doesn't kill the other VMs by getting all of the Host's CPU.
Finally, observe and see what the result is on the performance of this VM and other VMs on that Host, fine tune the reservations, the shares and the limits till you can reach the targeted performance...
Best regards,