With the help of a new column in Logical_Flow table that stores ingress/egress
lport information, ovn-controller can avoid parsing a big portion of the
logical flows in SB DB, which can largely improve ovn-controller's performance
whenever a full recompute is required.
With a scale test topology of 1000 chassises, 20 LSPs per chassis, 20k
lports in total spread acrossing 200 logical switches, connected by a
logical router, the test result before & after this change:
Before:
- lflow-cache disabled:
- ovn-controller recompute: 2.7 sec
- lflow-cache enabled:
- ovn-controller recompute: 2.1 sec
- lflow cache memory: 622103 KB
After:
- lflow-cache disabled:
- ovn-controller recompute: 0.83 sec
- lflow-cache enabled:
- ovn-controller recompute: 0.71 sec
- lflow cache memory: 123641 KB
(note: DP group enabled for both)
So for this test scenario, when lflow cache is disabled, latency reduced
~70%; when lflow cache is enabled, latency reduced ~65% and lflow cache
memory reduced ~80%.
TODO: DDlog change for ovn-northd.
Note that this series applies on top of a pending patch:
https://patchwork.ozlabs.org/project/ovn/patch/[email protected]/
Han Zhou (4):
ovn-northd.at: Minor improvement for the dp group test case.
ovn-sb: Add tags column to logical_flow table of the SB DB.
ovn-northd: Populate in_out_port in logical_flow table's tags.
ovn-controller: Skip non-local lflows in ovn-controller before
parsing.
controller/lflow.c | 21 +++
controller/lflow.h | 1 +
controller/ovn-controller.c | 1 +
northd/ovn-northd.c | 272 ++++++++++++++++++++----------------
ovn-sb.ovsschema | 7 +-
ovn-sb.xml | 23 +++
tests/ovn-northd.at | 2 +-
7 files changed, 207 insertions(+), 120 deletions(-)
--
2.30.2
_______________________________________________
dev mailing list
[email protected]
https://mail.openvswitch.org/mailman/listinfo/ovs-dev