On 9/17/24 17:53, Ilya Maximets wrote: > ovn-northd copies external IDs from Logical Switch, Router and their > Port records to corresponding Southbound Datapath and Port Binding > records. IDs in other tables are not used by northd in any way, so > there is no point in monitoring them. > > CMSes tend to create a huge amount of external IDs for every record > to the point where they can take literally half of the database data. > In high scale clusters that can be several hundreds of MB. Not > monitoring them saves a lot of time and memory while downloading > initial database snapshots on the first connection and should also > reduce the ongoing cost while new resources are being created. > > This will also help avoiding unnecessary re-computes when external > IDs are updated without changing any other data. > > Tested on a 500 MB Northbound DB that contains 1M ACLs created by > ovn-kubernetes in a test cluster mimicking a real world setup. > > Before the change it took 20 seconds for the ovsdb-server to send out > an initial database snapshot and 19 seconds for ovn-northd to receive > it, parse and run a full recompute, consuming 5.4 GB of RAM. With the > change it takes 15 seconds on the database side and 11 seconds for the > ovn-northd, consuming 2.9 GB of RAM. (Note: the test was performed in > a sandbox with no OVN chassis connected, so northd didn't generate a > lot of logical flows for those ACLs.) > > So, we saved: > - 25% of CPU time on the database side. > - 42% of CPU time on the ovn-northd side. > - 2.5 GB (46%) of RAM on ovn-northd. > > Signed-off-by: Ilya Maximets <[email protected]> > --- > northd/ovn-northd.c | 36 ++++++++++++++++++++++++++++++++++++ > 1 file changed, 36 insertions(+)
Recheck-request: github-robot-_ovn-kubernetes _______________________________________________ dev mailing list [email protected] https://mail.openvswitch.org/mailman/listinfo/ovs-dev
