Hi Ilya, On 8/27/21 5:24 PM, Ilya Maximets wrote: > It's common for CMS (e.g., ovn-kubernetes) to create 3 identical load > balancers, one per protocol (tcp, udp, sctp). However, if VIPs of > these load balancers has no ports specified (!vip_port), northd will > generate identical logical flows for them. 2 of 3 such flows will be > just discarded, so it's better to not build them form the beginning.
I don't think this is accurate; AFAIK ovn-kubernetes will not configure load balancer VIPs without specifying the port. > > For example, in an ovn-heater's 120 node density-heavy scenario we > have 3 load balancers with 15K VIPs in each. One for tcp, one for > udp and one for sctp. In this case, ovn-northd generates 26M of > logical flows in total. ~7.5M of them are flows for a single load > balancer. 2 * 7.5M = 15M are identical to the first 7.5M and just > discarded. The way ovn-heater was configuring VIPs was wrong. I opened a PR to fix that: https://github.com/dceara/ovn-heater/pull/75 > > Let's find all these identical load balancers and skip while building > logical flows. With this change, 15M of redundant logical flows are > not generated saving ~1.5 seconds of the CPU time per run. In conclusion I'm not so sure the impact will be as noticeable in a real ovn-kubernetes deployment. > > Comparison function and the loop looks heavy, but in testing it takes > only a few milliseconds on these large load balancers. > > Signed-off-by: Ilya Maximets <[email protected]> > --- Regards, Dumitru _______________________________________________ dev mailing list [email protected] https://mail.openvswitch.org/mailman/listinfo/ovs-dev
