[ovs-dev] [PATCH v3 ovn 0/2] ovn-controller: Logical flow processing optimizations

Numan Siddique nusiddiq at redhat.com
Mon Sep 16 10:39:22 UTC 2019


On Fri, Sep 13, 2019 at 3:13 AM Han Zhou <zhouhan at gmail.com> wrote:

> On Thu, Sep 12, 2019 at 7:14 AM Dumitru Ceara <dceara at redhat.com> wrote:
> >
> > This series adds some (independent) optimizations that improve
> > ovn-controller performance by lowering the number of operations that
> > need to be executed during a iteration of the main controller loop.
> >
> > Each patch in the series addresses a bottleneck reported by running
> > `perf record -g --call-graph dwarf -i /usr/bin/ovn-controller` on a
> > system where the Southbound DB was already populated by ovn-northd.
> >
> > The logical configuration of the OVN is:
> > - 500 logical routers
> > - 1 logical switch attached to each router
> > - 2 logical ports attached to each switch
> > - 4 ACLs per switch
> >
> > To evaluate the performance impact of the change in a more realistic
> > way the following test is performed (on a single node that runs
> ovn-northd
> > and ovn-controller and emulates the VM hosts with OVS internal
> interfaces):
> > 1. Start ovs-vswitchd.
> > 2. Remove the Southbound DB such that ovn-northd needs to repopulate
> >    everything based on the Northbound DB contents.
> > 3. Start a patched version of ovn-controller such that it tracks loop
> time
> >    execution information and how long it takes to process all logical
> flows
> >    from the Southbound DB.
> > 4. At the same time with step 3 above, start ovn-northd which will
> populate
> >    the Southbound DB.
> >
> > The following measurements are taken:
> > - real time (measured with `time`) to have all corresponding openflow
> flows
> >   processed by ovs-vswitchd.
> > - maximum ovn-controller main loop iteration duration
> > - average ovn-controller main loop iteration duration
> > - number of times ovn-controller executes the main loop until all logical
> >   flows are processed
> >
> > Comparing the results before and after this series we see:
> > - 13% performance boost w.r.t. real time taken to have all openflow flows
> >   installed in ovs-vswitchd
> > - 41% decrease of average ovn-controller loop iteration duration and
> >   12% increase of ovn-controller number of loop iterations. Essentially
> >   processing loops are faster and can happen more often.
> > - 2% decrease of maximum ovn-controller main loop iteration duration.
> >
> >
> > Dumitru Ceara (2):
> >       ovn-controller: Optimize update of ct-zones external-ids.
> >       ovn-controller: Minimize SB DB port_binding lookups.
> >
> >
> >  controller/binding.c        |   19 ++++++++++++---
> >  controller/ovn-controller.c |   53
> +++++++++++++++++++++++++++++++++++++------
> >  controller/ovn-controller.h |   11 ++++++++-
> >  controller/physical.c       |   17 ++++++++------
> >  controller/pinctrl.c        |   53
> +++++++++++--------------------------------
> >  5 files changed, 93 insertions(+), 60 deletions(-)
> >
> >
> > ---
> > v3:
> >   - Remove first patch from the series as it was already applied.
> >   - Rebase rest of series.
> > v2: Send series for OVN repo instead of OVS.
> > _______________________________________________
> > dev mailing list
> > dev at openvswitch.org
> > https://mail.openvswitch.org/mailman/listinfo/ovs-dev
>
> Thanks Dumitru. For the series:
>
> Acked-by: Han Zhou <hzhou8 at ebay.com>
>

Thanks for the patches and reviews.
I applied this series to master.

Numan


> _______________________________________________
> dev mailing list
> dev at openvswitch.org
> https://mail.openvswitch.org/mailman/listinfo/ovs-dev
>


More information about the dev mailing list