Re: [ckrm-tech] [RFC][PATCH 5/8] RSS controller task migration support

Balbir Singh
2006-11-17T16:34:51Z

Patrick.Le-Dot wrote:
>> ...
>> For implementing guarantees, we can use limits. Please see
>> http://wiki.openvz.org/Containers/Guarantees_for_resources.
>
> Nack.
>
> This seems to be correct for resources like cpu, disk or network
> bandwidth but not for the memory just because nobody in this wiki
> speaks about the kswapd and page reclaim (but it's true that a such
> demon does not exist for cpu, disk or... then the problem is more
> simple).
>
> For a customer the main reason to use guarantee is to be sure that
> some pages of a job remain in memory when the system is low on free
> memory. This should be true even for a job in group/container A with
> a smooth activity compared to a group/container B with a set of jobs
> using memory more agressively...
>

I am not against guarantees, but

Consider the following scenario, let's say we implement guarantees

1. If we account for kernel resources, how do you provide guarantees
when you have non-reclaimable resources?
2. If a customer runs a system with swap turned off (which is quite
common), then anonymous memory becomes irreclaimable. If a group
takes more than it's fair share (exceeds its guarantee), you
have scenario similar to 1 above.

> What happens if we use limits to implement guarantees ?
>
>>> ...
>>> The idea of getting a guarantee is simple:
>>> if any group gi requires a Gi units of resource from R units available
>>> then limiting all the rest groups with R - Gi units provides a desired
>>> guarantee
>
> If the limit is a "hard limit" then we have implemented reservation and
> this is too strict.
>
> If the limit is a "soft limit" then group/container B is autorized to
> use more than the limit and nothing is guaranteed for group/container A...
>
> Patrick

Yes, but it is better than failing to meet a guarantee (if guarantees are
desired :))

--

Balbir Singh,
Linux Technology Center,
IBM Software Labs