https://blueprints.launchpad.net/fuel/+spec/multiqueue-support-nfv
Today’s high-end servers have more processors, and guests running on them often have an increasing number of vCPUs. In a single virtio-net queue, the scale of the protocol stack in a guest is restricted, as the network performance does not scale as the number of vCPUs increases. Guests cannot transmit or retrieve packets in parallel, as virtio-net has only one TX and RX queue.
Multiqueue virtio-net provides the greatest performance benefit when:
There is a spec Libvirt: virtio-net multiqueue implemented that adds support for mutliqueue feature in OpenStack, now we need to add support on packages level. To achieve this we need the following packages together:
These packages availabe in Ubuntu 16.04 out of the box (thus MOS-10 will not need any additional actions except QA), but need backporting in case of Ubuntu 14.04 (which is a base system in MOS 9.x). The good thing is that backported packages were already tested as part of optional ‘NFV feature support’.
Integrate packages from ‘feature/nfv’ branch into main 9.0 development branch and verify that they work as expected.
To enable the feature from OpenStack side additional parameter should be added to image properties, like shown below:
..code-block:: text
hw_vif_multiqueue_enabled=true|false (default false)
Currently, the number of queues will match the number of vCPUs, defined for the instance.
using ethtool. For example:
..code-block:: text
ethtool -L <NIC> combined #num_of_queues
None
None
Networking-related plugins might face issues with new packages.
None
There is no other way than upgrade to the packages that provide multiqueue functionality.
Upgrading QEMU requires every guest VM was stopped and started again (not rebooted).
None
None
None
Improves NFV performance.
None
None
None
None
None