Bug 1703198 - networking-ovn calls to update_port take 6 seconds per call
Summary: networking-ovn calls to update_port take 6 seconds per call
Keywords:
Status: CLOSED CURRENTRELEASE
Alias: None
Product: Red Hat OpenStack
Classification: Red Hat
Component: openstack-neutron
Version: 15.0 (Stein)
Hardware: Unspecified
OS: Unspecified
medium
high
Target Milestone: ---
: ---
Assignee: Slawek Kaplonski
QA Contact: Eran Kuris
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2019-04-25 19:17 UTC by Nate Johnston
Modified: 2020-10-26 21:38 UTC (History)
8 users (show)

Fixed In Version:
Doc Type: If docs needed, set a value
Doc Text:
Clone Of:
Environment:
Last Closed: 2020-10-26 21:38:26 UTC
Target Upstream Version:
Embargoed:


Attachments (Terms of Use)


Links
System ID Private Priority Status Summary Last Updated
Red Hat Bugzilla 1691044 0 urgent CLOSED Adding ports to VM trunk takes too long with OVN neutron backend 2021-02-22 00:41:40 UTC

Description Nate Johnston 2019-04-25 19:17:55 UTC
The description of this bug is a synthesis of the information found in the email chain titled "Optimizing ML2 updates" between members of the Networking DFG on April 25, 2019.

----

This bug is in the context of this BZ [0] which is now preventing
OpenShift to run on OpenStack with Kuryr (and it's fully supported!).

The main issue is that adding subports to a trunk results in
subsequent calls from networking-ovn to the ML2 plugin updating the
binding information of each subport to that of the parent [1]. Slaweq
measured this and it takes around 6 seconds. The difference between
OVN and OVS is that in OVS all happens in parallel processed by
different RPC workers while in OVN the processing is done serially.

Using a bulk update would not have helped much here. The problem is also that networking-ovn updates the port one by one (because the OVSDB events
that signal that a port transitioned to ACTIVE are processed serially).

We need to identify where those 6 seconds per call are being spent through profiling in order to asses if it is potentially optimizable.

[0] https://bugzilla.redhat.com/show_bug.cgi?id=1691044
[1] https://github.com/openstack/networking-ovn/blob/master/networking_ovn/ml2/mech_driver.py#L708

Comment 1 anil venkata 2019-04-26 07:26:40 UTC
Daniel, you can use https://review.opendev.org/#/c/627414/ for profiling neutron server.


Note You need to log in before you can comment on or make changes to this bug.