NUMA Aware CPU Binding

Registered by Guangya Liu (Jay Lau) on 2013-05-19

We can first do this for KVM.

The current cpu binding will bind the physical cores in sequential order based on the core id. On some of the in house NUMA machines, for example, physical cores 0, 2, 4 and 6 are one one NUMA node and cores 1, 3, 5 and 7 are on the other NUMA node. Binding a 2 vcpu VM on this machine will result in the two vcpus being bound to different nodes, this will impact the performance of the VM instances.

• If the NEWVM request more vcpus than any single NUMA node or the NEWVM request more memory than the free memory size on any single NUMA node: exit (FAIL). The VM will float across all physical CPUs.
• If there is a NUMA node that has enough unbound cores and has enough memory, do the binding. Try to pack Vms on a node to make other other node available for a large VM that may start in the future.

Blueprint information

Status:
Not started
Approver:
None
Priority:
Undefined
Drafter:
None
Direction:
Needs approval
Assignee:
None
Definition:
New
Series goal:
None
Implementation:
Unknown
Milestone target:
None

Related branches

Sprints

Whiteboard

It looks like there hasn't been any activities since May. Is it active?

The subject of vCPU topology is very closely tied up with NUMA placement, as such I think we need to consider any design of this blueprint in co-ordination with https://blueprints.launchpad.net/nova/+spec/support-libvirt-vcpu-topologyIt looks like there hasn't been any activities since May. Is it active?

The subject of vCPU topology is very closely tied up with NUMA placement, as such I think we need to consider any design of this blueprint in co-ordination with https://blueprints.launchpad.net/nova/+spec/support-libvirt-vcpu-topology

If you are still working on this, please re-submit via nova-specs. If not, please mark as obsolete, and add a quick comment to describe why. --johnthetubaguy (20th April 2014)

Looks like Dan B. created a blueprint to try and tie the numerous efforts in this area together here:

    https://blueprints.launchpad.net/nova/+spec/nova-virt-numa-and-vcpu-topology

--sgordon (31st March 2014)

(?)

Work Items

This blueprint contains Public information 
Everyone can see this information.