Balbir Singh wrote:
[snip]
This approach has the following disadvantages
1. Lets consider initialization - When we create 'n' groups
initially, we need
to spend O(n^2) time to assign guarantees.
1. Not guarantees - limits. If you do not need guarantees - assign
overcommited limits. Most of OpenVZ users do so and nobody claims.
2. If you start n groups at once then limits are calculated in O(n)
time, not O(n^2).
2. Every time a limit or a guarantee changes, we need to recalculate
guarantees
and ensure that the change will not break any guarantees
The same.
3. The same thing as stated above, when a resource group is created
or deleted
This can lead to some instability; a change in one group propagates to
all other groups.
Let me cite a part of your answer on my letter from 11.09.2006:
"...
xemul> I have a node with 1Gb of ram and 10 containers with 100Mb
xemul> guarantee each. I want to start one more.
xemul> What shall I do not to break guarantees?
Don't start the new container or change the guarantees of the
existing ones to accommodate this one ... It would be perfectly
ok to have a container that does not care about guarantees to
set their guarantee to 0 and set their limit to the desired value
..."
The same for the limiting - either do not start new container, or
recalculate limits to meet new requirements. You may not take care of
guarantees as weel and create an overcommited configuration.
And one more thing. We've asked it many times and I ask it again -
please, show us the other way for providing guarantee rather than
limiting or reserving.