[ovs-dev] [PATCH ovn] ovn-northd: Don't generate identical flows for same LBs with different protocol.
Dumitru Ceara
dceara at redhat.com
Wed Sep 1 12:42:42 UTC 2021
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 <i.maximets at ovn.org>
> ---
Regards,
Dumitru
More information about the dev
mailing list