[ovs-dev] [PATCH v3 ovn 0/2] ovn-controller: Logical flow processing optimizations
Dumitru Ceara
dceara at redhat.com
Mon Sep 16 11:16:59 UTC 2019
On Mon, Sep 16, 2019 at 12:39 PM Numan Siddique <nusiddiq at redhat.com> wrote:
>
>
>
> 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
Thanks!
>
>>
>> _______________________________________________
>> dev mailing list
>> dev at openvswitch.org
>> https://mail.openvswitch.org/mailman/listinfo/ovs-dev
More information about the dev
mailing list