This series is an extension of v2 which only contained patches 2-4.
I wanted to put them all in a single series and provide consistent
performance values for all of them.

Patch 1 just adds a performance test tool that is used throughout the
series.

Patches 2+3 optimize the cases of non-found connections. This is a
common case in combination with OVN for the reverse SNAT and reverse
DNAT stages. The performance test tool is not covering this specific
case. They where only tested on a real world setup.

Patch 5 optimizes all modifying operations by splitting the locks
for insert and deletions per zone.

Patches 6-10 optimize connection cleaning. The goal is to have a
predictable performance of the conntrack cleaning process independent if
there is only a single gigantic zone in use or if there are a lot of
small ones.

Key improvement:
A Testcase with 10 threads calling conntrack_execute with a full tcp
handshakes. Each thread creates in total 1 Million connections and
processes them. The n_conn limit is at 3 Million, which means that at
least 7 Million connections need to be cleaned for the test to finish.
The goal of this case was to simulate a tcp portscan.

Before this series the testcase took 73 seconds. After the series we are
at 3.7 seconds.

Felix Huettner (10):
  test-conntrack: Benchmark for conntrack on tcp.
  conntrack: Do not always take insert locks.
  conntrack: Use cmap for expectations.
  conntrack: Add more coverage values for conntrack.
  conntrack: Split lock and limits per zone.
  conntrack: Clean zones partially.
  conntrack: Batch conn deletions in a single zone.
  cmap: Support switching between cursor and position.
  conntrack: Use cmap cursor for iteration.
  conntrack: Immediately continue cleaning under load.

 lib/cmap.c              |  62 ++++
 lib/cmap.h              |  10 +
 lib/conntrack-private.h |  54 +--
 lib/conntrack.c         | 796 +++++++++++++++++++---------------------
 lib/conntrack.h         |   5 +-
 tests/test-cmap.c       |  45 ++-
 tests/test-conntrack.c  | 269 +++++++++++++-
 7 files changed, 788 insertions(+), 453 deletions(-)


base-commit: 7d07a8623d9fc257489fd99fc8d56a63249c389c
-- 
2.43.0


_______________________________________________
dev mailing list
[email protected]
https://mail.openvswitch.org/mailman/listinfo/ovs-dev

Reply via email to