Comment 20 for bug 1946318

Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix merged to neutron (stable/ussuri)

Reviewed: https://review.opendev.org/c/openstack/neutron/+/814869
Committed: https://opendev.org/openstack/neutron/commit/b767825d1329dbb7fcff264d6047d2513d02db4e
Submitter: "Zuul (22348)"
Branch: stable/ussuri

commit b767825d1329dbb7fcff264d6047d2513d02db4e
Author: Daniel Alvarez Sanchez <email address hidden>
Date: Thu Oct 7 09:23:21 2021 +0200

    [ovn] Stop monitoring the SB MAC_Binding table to reduce mem footprint

    The MAC_Binding table in the SB database may grow indefinitely (due
    to a lack of an aging mechanism of its entries) and eventually
    lead to OOM killers for neutron-server which maintains an in-memory
    copy of the database.

    In order to stop monitoring this table, this patch is invoking
    the ovsdb-client tool to remove the entries associated to
    Floating IPs that have just been detached. The execution of this
    tool is really fast as it will just invoke a JSON-RPC transact command
    which doesn't require downloading the database contents.

    In a scale test, the memory consumption of neutron-server dropped
    from 75GB to 7GB with this patch.

    Closes-Bug: #1946318

    Conflicts:
      neutron/plugins/ml2/drivers/ovn/mech_driver/mech_driver.py
      neutron/tests/functional/plugins/ml2/drivers/ovn/mech_driver/ovsdb/test_ovsdb_monitor.py
      neutron/tests/unit/plugins/ml2/drivers/ovn/mech_driver/test_mech_driver.py

    Note: The functional test has been changed for this stable branch
    because the update_tables() method from ovsdbapp is not availabie for
    this version of Neutron. So I changed the functional test to add the
    MAC_Binding entry via ovsdb-client instead of using ovsdbapp to do so.

    Signed-off-by: Daniel Alvarez Sanchez <email address hidden>
    Change-Id: Id84bf17953527c415d611bfc198038fb6f811de3
    (cherry picked from commit f6c35527698119ee6f73a6a3613c9beebb563840)