Report host memory bandwidth as a metric in Nova (partial)

Registered by Sudipta Biswas

This blueprint proposes to introduce host memory bandwidth as a host metric. Memory bandwidth can be a essential piece in determining VM performance bottlenecks and further can be used for better NUMA based placements.

Using Linux platform interfaces like linux perf APIs, nova-compute should be able to expose Host's memory bandwidth utilization on every NUMA node.
This memory bandwidth can be leveraged in Openstack by exposing it as a monitor.

This will follow a similar approach as the already existing monitor for CPU and will be optional.

Blueprint information

Status:
Complete
Approver:
John Garbutt
Priority:
Not
Drafter:
Sudipta Biswas
Direction:
Needs approval
Assignee:
Sudipta Biswas
Definition:
Obsolete
Series goal:
None
Implementation:
Beta Available
Milestone target:
None
Started by
Sudipta Biswas
Completed by
Matt Riedemann

Related branches

Sprints

Whiteboard

Gerrit topic: https://review.openstack.org/#q,topic:bp/memory-bw,n,z

Addressed by: https://review.openstack.org/180983
    Report host memory b/w as a metric in Nova

Addressed by: https://review.openstack.org/198972
    Allow NUMA based reporting for Monitors

Removing the target of liberty-3 as all non-priority blueprints must be merged by liberty-2 --johnthetubaguy 15th July 2015

We should try merge what we have here, so marking this as partial, and that it needscodereview. If more code is uploaded by the end of the day, that can be included too. --johnthetubaguy 16th July 2015

Addressed by: https://review.openstack.org/202623
    Base enablement for memory bandwidth monitor

Addressed by: https://review.openstack.org/203163
    Introduce utility module for pcp

Turns out not all the code is really up for review, so it should have been delayed in the feature proposal freeze.

Sorry, we have now hit the non-priority feature freeze for Liberty. You will need to resubmit this blueprint for Mitaka or apply for an exception. For more details on why this is happening, and the rest of the process details, please see: https://wiki.openstack.org/wiki/Nova/Liberty_Release_Schedule
--johnthetubaugy 3rd July 2015

Addressed by: https://review.openstack.org/229034
    Report host memory bandwidth as a metric in Nova

====

Merged patches:

Addressed by: https://review.openstack.org/198972
    Allow NUMA based reporting for Monitors

=====

Pending patches:

Gerrit topic: https://review.openstack.org/#q,topic:bp/memory-bw,n,z

Addressed by: https://review.openstack.org/202623
    Base enablement for memory bandwidth monitor

Addressed by: https://review.openstack.org/203163
    Introduce utility module for pcp

Addressed by: https://review.openstack.org/252800
    Allow monitor plugins to set own metric object

Addressed by: https://review.openstack.org/255438
    Remove hardcoding namespaces for monitors

Addressed by: https://review.openstack.org/266773
    Base enablement for memory bandwidth monitor

Addressed by: https://review.openstack.org/270079
    add memory bandwidth base class

Addressed by: https://review.openstack.org/270341
    Allow monitor plugins to set own metric object

Addressed by: https://review.openstack.org/270344
    WIP: define NUMA memory bw monitor

Sorry, we have now hit the Non-Priority Feature Freeze for Mitaka. For more details please see: http://docs.openstack.org/releases/schedules/mitaka.html#m-nova-npff and http://docs.openstack.org/developer/nova/process.html#non-priority-feature-freeze
--johnthetubaguy 2016.01.30

Addressed by: https://review.openstack.org/312001
    Report host memory bandwidth as a metric in Nova

Addressed by: https://review.openstack.org/329783
    Introduce the memory bandwidth monitor

Addressed by: https://review.openstack.org/329785
    Update setup.cfg for memory bandwidth monitor

There are concerns over needing the external native package installed for pcp to make this work, and how it's different from how we get CPU stats/metrics from the virt drivers. There isn't an alternative in libvirt today though, so we'd be far out from using something directly from libvirt. I personally don't think we have enough consensus on getting this in for Newton with a FFE but wanted to bring it up for completeness. The core team will discuss in #openstack-nova in freenode IRC on Wednesday 7/6. -- mriedem 20160705

There are too many open questions/concerns around this, and gathering metrics within nova in general, so we're going to hold off on this for Newton and plan on discussing the future of metrics monitors in Nova and it's scheduler at the midcycle meetup. -- mriedem 20160706

For an update on this from the Newton midcycle, see:

http://lists.openstack.org/pipermail/openstack-dev/2016-August/100600.html

http://docs.openstack.org/developer/nova/policies.html?highlight=monitoring#metrics-gathering

(?)

Work Items

This blueprint contains Public information 
Everyone can see this information.