Re: [RFC] CPU hard limits

Balbir Singh
2009-06-05T09:41:24Z

* Avi Kivity <avi@redhat.com> [2009-06-05 09:01:50]:

> Bharata B Rao wrote:
>> On Fri, Jun 05, 2009 at 01:27:55PM +0800, Balbir Singh wrote:
>>
>>> * Avi Kivity <avi@redhat.com> [2009-06-05 08:21:43]:
>>>
>>>
>>>> Balbir Singh wrote:
>>>>
>>>>>> But then there is no other way to make a *guarantee*, guarantees come
>>>>>> at a cost of idling resources, no? Can you show me any other
>>>>>> combination that will provide the guarantee and without idling the
>>>>>> system for the specified guarantees?
>>>>>>
>>>>> OK, I see part of your concern, but I think we could do some
>>>>> optimizations during design. For example if all groups have reached
>>>>> their hard-limit and the system is idle, should we do start a new hard
>>>>> limit interval and restart, so that idleness can be removed. Would
>>>>> that be an acceptable design point?
>>>>>
>>>> I think so. Given guarantees G1..Gn (0 <= Gi <= 1; sum(Gi) <= 1),
>>>> and a cpu hog running in each group, how would the algorithm
>>>> divide resources?
>>>>
>>>>
>>> As per the matrix calculation, but as soon as we reach an idle point,
>>> we redistribute the b/w and start a new quantum so to speak, where all
>>> groups are charged up to their hard limits.
>>>
>>
>> But could there be client models where you are required to strictly
>> adhere to the limit within the bandwidth and not provide more (by advancing
>> the bandwidth period) in the presence of idle cycles ?
>>
>
> That's the limit part. I'd like to be able to specify limits and
> guarantees on the same host and for the same groups; I don't think that
> works when you advance the bandwidth period.

Yes, this feature needs to be configurable. But your use case for both
limits and guarantees is interesting. We spoke to Peter and he was
convinced only of the guarantee use case. Could you please help
elaborate your use case, so that we can incorporate it into RFC v2 we
send out. Peter is opposed to having hard limits and is convinced that
they are not generally useful, so far I seen you and Paul say it is
useful, any arguments you have or any +1 from you will help us. Peter
I am not back stabbing you :)

>
> I think we need to treat guarantees as first-class goals, not something
> derived from limits (in fact I think guarantees are more useful as they
> can be used to provide SLAs).

Even limits are useful for SLA's since your b/w available changes
quite drastically as we add or remove groups. There are other use
cases for limits as well.

--
Balbir