Add Vinod in this thread.

Best Regards,
Jason Liao

-----Original Message-----
From: Adam Litke [mailto:ali...@redhat.com] 
Sent: 2014年3月19日 21:23
To: Doron Fediuck
Cc: vdsm-devel; Liao, Chuan (Jason Liao, HPservers-Core-OE-PSC); Martin Sivak; 
Gilad Chaplik; Liang, Shang-Chun (David Liang, HPservers-Core-OE-PSC); Shi, 
Xiao-Lei (Bruce, HP Servers-PSC-CQ)
Subject: Re: Fwd: Question about MOM

On 19/03/14 05:50 -0400, Doron Fediuck wrote:
>Moving this to the vdsm list.
>
>----- Forwarded Message -----
>From: "Chuan Liao (Jason Liao, HPservers-Core-OE-PSC)" 
><chuan.l...@hp.com>
>To: "Martin Sivak" <msi...@redhat.com>, ali...@redhat.com, "Doron 
>Fediuck" <dfedi...@redhat.com>, "Gilad Chaplik" <gchap...@redhat.com>
>Cc: "Shang-Chun Liang (David Liang, HPservers-Core-OE-PSC)" 
><shangchun.li...@hp.com>, "Xiao-Lei Shi (Bruce, HP Servers-PSC-CQ)" 
><xiao-lei....@hp.com>
>Sent: Wednesday, March 19, 2014 11:28:01 AM
>Subject: Question about MOM
>
>Hi All,
>
>I am a new with MOM feature.
>
>In my understanding, MOM is the collector both from host and guest and 
>set the right policy to KSM and memory ballooning get better 
>performance.

Yes this is correct.  In oVirt, MOM runs as another vdsm thread and uses the 
vdsm API to collect host and guest statistics.  Those statistics are fed into a 
policy file which can create some outputs (such as ksm tuning parameters and 
guest balloon sizes).  MOM then uses the vdsm API to apply those outputs to the 
system.

>I am not sure how it has relationship with NUMA, does anyone can 
>explain it to me?

I guess we need to start by examining the currently planned use cases.
Please feel free to correct me if I am missing something or over-simplifying 
something:
  1) NUMA-aware placement - Try to schedule VMs to run on hosts where
     the guest will not have to span multiple NUMA nodes.
  2) Virtual NUMA topology - Emulate a NUMA topology inside the VM.

These two use cases are intertwined because VMs with NUMA can be scheduled with 
more flexibility (albeit with more sophistication) since the scheduler can fit 
the VM onto hosts where the memory can be split across multiple Host NUMA nodes.

  3) Manual NUMA pinning - Allow advanced admins to schedule a VM to
     run on a specific host with a manual pinning strategy.

Most of these use cases involve the engine scheduler and engine UI.
There is not much for MOM to do to support their direct implementation.  We 
should focus on managing interactions with other SLA features that MOM does 
implement:
  - How should KSM be adjusted when NUMA is in effect?  In a NUMA
    host, are there numa-aware KSM tunables that we should use?
  - When ballooning VMs, should we take into account how much memory
    we need to reclaim from VMs on a node by node basis?

Lastly, let's see if MOM needs to manage the existing NUMA utilities in place 
on the system.  I don't know much about AutoNUMA.  Does it have tunables that 
should be adjusted or is it completely autonomous?
Does libvirt have any NUMA tuning APIs that MOM may want to call to enhance 
performance in certain situations?

One of the main questions I ask when trying to decide if MOM should manage a 
particular setting is: "Is this something that is set once and stays the same 
or is it something that must change dynamically in accordance with current 
system conditions?"  In the former case, it is probably best managed by engine 
or vdsm directly.  In the latter case, it fits the MOM model.

Hope this was helpful!  Please feel free to continue engaging this list with 
any additional questions that you might have.

>On engine side, there is only one button with this feature: Sync MoM 
>Policy, right?
>
>On vdsm side, I saw the momIF is working for this, right?
>
>Best Regards, Jason Liao
>

--
Adam Litke

[Jason] +Martin's part
Hi,

> In my understanding, MOM is the collector both from host and guest and 
> set the right policy to KSM and memory ballooning get better performance.

Correct. MoM controls the Guest memory allocations using KSM and ballooning and 
allows overcommitment to work this way. I does not really set the policy 
thought, it contains the policy and uses it to dynamically update the memory 
space available for VMs.

> I am not sure how it has relationship with NUMA, does anyone can explain it 
> to me?

In theory MoM might be able to play with ballooning on per node basis.

Without NUMA information it would free memory somewhere on the host, but that 
memory might be too slow to access because it won't be localized on nearby 
nodes.

With NUMA information MoM will know which VMs can be ballooned so the newly 
released memory segments are a bit more closer to each other. 

> On engine side, there is only one button with this feature: Sync MoM Policy, 
> right?

There is also Balloon device checkbox in the Edit VM dialog and Enable 
ballooning on the Edit Cluster dialog.

> On vdsm side, I saw the momIF is working for this, right?

Yes, momIF is responsible for the MoM specific communication and for creating 
the policy file with parameters.

MoM also uses standard VDSM APIs to get other information and you can see that 
in MoM's source code in hypervisor_interfaces/vdsm (that interface is then used 
by collectors).

Regards

--
Martin Sivak
msi...@redhat.com
_______________________________________________
vdsm-devel mailing list
vdsm-devel@lists.fedorahosted.org
https://lists.fedorahosted.org/mailman/listinfo/vdsm-devel

Reply via email to