[ovs-dev] [PATCH ovn 0/8] 3x performance improvement for ddlog with load balancer benchmark

Ben Pfaff blp at ovn.org
Fri Aug 27 22:33:52 UTC 2021


With and without these patches, I see the following performance when I
run the load-balancer heavy benchmark.  The measurements include cold
start with all the load balancers, then deleting the sctp load balancer
and waiting for it to finish, then the same with the tcp load balancer,
then the same with the udp load balancer.  The measurements only include
ddlog time; there is additional overhead talking to the database, but
that's a constant factor.

Without patches:   777 CPU seconds, 23.5 GB RAM, 12:59 elapsed time.
With patches:      261 CPU seconds, 14.4 GB RAM,  4:23 elapsed time.

I am continuing to work on performance.

Ben Pfaff (7):
  ovn-northd-ddlog: Make joins for ARP/ND flows slightly more efficient.
  ovn-northd-ddlog: Derive load balancer IP addresses in new
    LoadBalancer.
  ovn-northd-ddlog: Reverse order of joins for connection tracking
    flows.
  ovn-northd-ddlog: Avoid re-parsing LB IP addresses and ports.
  ovn-northd-ddlog: Simplify LBVIPWithStatus to include up_backends
    string.
  ovn-northd-ddlog: Avoid storing unused 'lbs' field in Router.
  ovn-northd-ddlog: Intern strings before joining when possible.

Leonid Ryzhyk (1):
  ovn-northd-ddlog: Intern all strings in OVSDB tables.

 configure.ac         |    2 +-
 manpages.mk          |    1 -
 northd/copp.dl       |   32 +-
 northd/helpers.dl    |   14 +-
 northd/ipam.dl       |   17 +-
 northd/lrouter.dl    |  213 +++--
 northd/lswitch.dl    |  177 ++--
 northd/multicast.dl  |   44 +-
 northd/ovn-nb.dlopts |    1 +
 northd/ovn-sb.dlopts |    1 +
 northd/ovn.dl        |    7 +
 northd/ovn_northd.dl | 2017 ++++++++++++++++++++----------------------
 northd/ovsdb2ddlog2c |    6 +-
 tests/ovn-ic.at      |    8 +-
 tests/ovn.at         |    6 +-
 15 files changed, 1266 insertions(+), 1280 deletions(-)

-- 
2.31.1



More information about the dev mailing list