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

Reply via email to