On 09/27/2011 12:52 AM, Adam Litke wrote:
> > First of all I think this is great! Thanks Adam!
> > Wrt the question above, the way I see vdsm going forward is a lot more policy
> > management, especially once we start talking about SLAs. This will involve a
> > lot more than just memory policies, and although I may be impartial here, I
> > think that this should fall under vdsm or under a policy engine project
> > (bigger scope than just memory) which vdsm would use. To elaborate, in
> > addition to memory, we need to manage policies around network, storage and cpu
> > and manipulate cgroups, tc, page cache etc. If we take page cache as an
> > example, it affects memory on the machine hence, MOM would like to tweak it
> > (also in the preso), but we already have recent results from the perf team to
> > change the defaults here to significantly increase I/O throughput, improve
> > fairness and reduce effect of buffered writers on VMs and we know that going
> > forward we'll have to tweak these parameters dynamically to adjust to
varying
> > workloads, esp if we ever plan on making good the claim for a hybrid server.
> > Having separate projects tweaking the same params will not lead to good
> > results.
Ayal, I definitely agree. I must admit that the project name MOM (while a nice
acronym), implies a restricted scope (memory only) but the architecture of MOM
does not limit its functionality to memory tuning only. I assert that MOM can
easily become the policy engine piece that you are speaking of.
The framework is very extensible (a set of Collectors that expose system state,
a set of Controllers that expose "tuning knobs", and a policy that reads
the state and manipulates the knobs. Adding control for cgroups is as simple as
writing a cgroups Collector and Controller.
It would be nice to agree on the initial (more limited scope maybe) for
the code within vdsm so the work be able to be done soonish. Since vdsm
is a relevantly a new open source project there will be many future
changes and imho there is no need to wait for the perfect policy engine
framework.