DRS entitlement viewer
The Distributed Resource Scheduler(DRS) feature of vCenter has been available in the VMware tool belt for many years now and keeps being improved at every release.
What DRS does is no secret to anyone.
It provides load balancing of VMs on the hosts and VM placement. It also does power management by placing hosts in standby mode according to the cluster’s load if DPM is enabled. However, entitlement is an area a little less known about DRS as it is related to how DRS works under the hood while still being available in the UI.
What are DRS entitlements
DRS improves global VM performances by balancing the load across the hosts that are of a cluster using vMotion, to migrate the virtual machines in a way that would satisfy the demand as much as possible without violating the resource policies. In order to achieve such a heavy duty, DRS uses, among other things, resource entitlements to measure how many CPU cycles and how much memory a virtual machine or resource pool should receive.
These entitlements are calculated based on several metrics and settings:
- Resource policies (Shares, reservations, limits)
- Estimated CPU and memory demand
When the entitled resources of a VM match the resources delivered, it means the virtual machine is getting what it asked for and no contention is occurring. The entitled resource delivered is 100%.
The percentage of entitled resources delivered is equal to the consumed resources divided by the minimum value between the demand and the entitlement.
You can display the entitlements in the vSphere web client in the monitor view of the cluster under “vSphere DRS” > “CPU | Memory Utilization”.
Green means the virtual machine is receiving resources that match its demand. The closer you get to red, the worse will the performances be.
DRS Entitlement Viewer
The tool VMware Fling can be installed as a plugin in the vSphere HTML5 client that gives additional insight into DRS entitlements.
[…] it gives the hierarchical view of vCenter DRS cluster inventory with entitled CPU and memory resources for each resource pool and VM in the cluster.
One of the great things about this fling is that you can simulate different scenarios without actually making changes using the “What-if” feature.
- Changing RLS (Reservation, Limit, Share) settings of a VM and/or resource pool
- What-If all the VMs’ resource demand is at 100%
- Both 1 and 2 happen together
If the what-if settings of your scenario produce an acceptable outcome, you can export the changes as a PowerCLI command that, if you execute against vCenter will commit the changes. A fantastic little piece of feature that will be a great help in making resource changes in prod.
Download the fling here: https://labs.vmware.com/flings/drs-entitlement-viewer#summary
Once you’ve downloaded the zip file, extract its content on your vcenter appliance in /usr/lib/vmware-vsphere-ui/plugin-packages/ folder (It does not work on Windows vCenter).
Then Edit the vSphere DRS settings
Add 2 advanced settings:
- CompressDrmdumpFiles : 0
- DrmdumpResActions : 1
After restarting the vsphere-ui service a new “DRS Entitlements” section will be available in the “Monitor” view.
You can then modify the resources on your VMs/resource pools to see what your entitlements would look like if you made the changes. To do that, Click on “What-if” and check “RLS” then click on a VM or resource pool to change its resource values and finish by clicking on Submit.
I set a limit of 800MHz on the test-RP resource pool and you can see how it would impact the VMs in it. You can see that the What-if values in grey are significantly lower than the current ones in white. Yours to evaluate if this is acceptable or not.
You can have a look at the entitlements in case all the VMs had a demand of 100% (i.e. using all their resources). You can see in the screenshot below that the values change dramatically.
You can then export your settings by using the button next to RLS settings which brings up a piece of PowerCLI that you can use to make the changes in your environment if you so wish.
Another really good fling from the VMware Labs who keep delivering! This one could prove very useful in production, especially in an environment that relies on resource pools and nested resource pools which can quickly become tricky to manage.
This little tool could bring light on potential impacts you wouldn’t have thought of, if you committed a change in production, impacting servers you don’t want to touch.