TheVMinator
Expert
Expert

What Triggers Share Values to Take Effect?

Resource pools take affect only during contention.  But what is "contention" - does that mean resource pools take affect when cPU utilization on the host is 100%? 90%?  When CPU ready time reaches a certain amount?  What metric is used to tell resource pools to kick in?

Is there a table somewhere that tells you exactly what triggers resource pools to take affect?  For example:

  • When CPU ready time reaches x, resource pools and share values will be enforced
  • When CPU % utilization on the host reaches x

  • When memory % utilization on the host reaches x
vbrowncoat
VMware Employee
VMware Employee

(All of this information, and much more is available in Duncan Epping and Frank Denneman's awesome vSphere Clustering Deep Dive book)

Resource pools don't only take effect during contention. If a resource pool or VM is configured with a limit the available resources may be used up before the host or clusters resources are consumed. Using a limit can be a good way to play around with resource contention without overloading a host.

Contention will occur when resource demand exceeds available resources. This would be when CPU active and Memory active exceed available CPU and/or memory on the host (this would be less than 100% as the host requires certain resources to operate). The reservation and share resource allocation settings (on either the VM or the resource pool it is a part of) affect entitlement.

Does this answer your question?

TheVMinator
Expert
Expert

Thank you for your reply.  I pretty much am aware of  the basic principles of how resource pools operate.  I understand that share values in resource pools take affect when demand exceeds available resources.

However, all of the explanations I can find are general in nature, and not specific.

That is what I am trying to clarify.

Example:

1.  A General explanation of when resource pool share values take effect.

"When demand exceeds available resources"

[this is general - no metric specified for what data counters are used to calculate "demand", no data counters specified to define how "available resources" are calculated.]

2.  A specific explanation of when resource pool share values take affect:

"Resource pool share values used in conjunction with CPU take affect when the demand, measured in percent utilization, and measured according to the data counter with the exact title of

  • "cpu.usage.average"
  • reaches 95%

of the host CPU capacity measured according to the data counter cpu.capacity.total , [ok so I made that counter name up] after subtracting the overhead required by the hypervisor."

I know this isn't how the algorithm works but I am creating an example to try to explain the difference between a general statement of what triggers share values to take affect and a specific definition of the condition that triggers them, defined by specific data counters reaching specific numerical values.

Hopefully that explains the question more clearly

Reply
0 Kudos
depping
Leadership
Leadership

It depends.... You can set things like reservations and limits on a resource pool and they always apply. Shares only apply when there is contention, just like with virtual machines. Frank wrote a billion great articles on what a resource pool is, how it works and how it should be used... I recommend starting there:

Google

TheVMinator
Expert
Expert

OK thanks.  That helps me clarify my question - as "what triggers shares" is really the specific question, as opposed to limits or reservations.  In this case I am concerned only about shares, rather than limits and reservations.  With limits and reservations, it is very clear.  With shares, I haven't found the answer yet.  I have started googling his articles, but have not yet found the info as per my post above  - i.e. what is the exact metric and data counter value upon which shares take affect for CPU and RAM.

I changed the title of my post to "What Triggers Shares" to clarify.

Reply
0 Kudos
TheVMinator
Expert
Expert

I've been searching on Frank Denneman's site, but I don't think the answer is there to this specific question.  His quality is second to none, but I don't think it addresses this.

Example of the difference between a general and specific definition of when share values take affect.

1.  A General explanation of when resource pool share values take effect:

"Share values take effect When demand exceeds available resources"

[this is general - no metric specified for what data counters are used to calculate "demand", no data counters specified to define how "available resources" are calculated.]

2.  A specific explanation of when resource pool share values take affect:

"Resource pool share values used in conjunction with CPU take affect when the demand, measured in percent utilization, and measured according to the data counter with the exact title of

  • "cpu.usage.average"
  • reaches 95%

of the host CPU capacity measured according to the data counter cpu.capacity.total

[ok so I made that counter name up] after subtracting the overhead required by the hypervisor."

I know this isn't how the algorithm works but I am creating an example to try to explain the difference between a general statement of what triggers share values to take affect and a specific definition of the condition that triggers them, defined by specific data counters reaching specific numerical values.

Hopefully that explains the question more clearly

Reply
0 Kudos