Hi Rosemarie, On 10/23/26 7:15 AM, Rosemarie O'Riorden wrote: > This commit adds a test that developers can run to check if the changes > they've made cause a regression in the performance of ovn-controller or > ovn-northd. > > Run from inside the sandbox and compare two commits' runtime and peak > memory usage for each process. >
Thanks for the new revision! I think this benchmark will be very useful indeed. > This test creates a topology consisting of logical switches and routers, > ACLs, port groups, NAT, DHCP, DNS, QoS, routing policies, and load > balancers. The user can also provide their own database file for the > benchmark. > > * To run the test with defaults (200 nodes, track northd and controller): > ./ovn-benchmark.sh > * To run with 50 nodes: ./ovn-benchmark.sh 50 > * To run with 30 nodes and only track ovn-northd: > ./ovn-benchmark.sh 30 northd > * To run with Valgrind Massif tracking allocations: > ./ovn-benchmark.sh --valgrind I'm still reviewing this patch but one thing I saw while testing it out is that running ovn-benchmark.sh with valgrind when OVN has been built with ubsan/asan doesn't work. We should probably document/check for that. > * To run with a custom db file: ./ovn-benchmark.sh -f file.db > * To run with debug info printed: ./ovn-benchmark.sh --debug > * To see detailed usage instructions: ./ovn-benchmark.sh --help > > Each "node" is a router-switch pair with associated features: > - 1 gateway router (with NAT, static routes, routing policies) > - 1 logical switch (with 9 ports by default, DHCP, DNS, QoS) > - 5 load balancers (each with 5 backends) > - ACLs, port groups, and address sets (shared across all nodes) > > For example, 200 nodes creates: > - 200 routers + 200 switches > - 1,800 logical switch ports (9 per switch) > - 1,000 load balancers (5 per node) > - 1,200 NAT rules, 1,200 static routes, 800 routing policies > - Plus ACLs, DHCP/DNS records, QoS rules, etc. > > ovn-benchmark.py creates the topology and ovn-benchmark.sh is the > wrapper that tracks peak memory and execution time. ovn-benchmark.py was > built off of ovn-lb-benchmark.py as a starting point. > > VmPeak is tracked by default, but Valgrind can be used instead for more > precise results. > > Reported-at: https://redhat.atlassian.net/browse/FDP-978 > Assisted-by: Claude Sonnet 4.5, Claude Code > Signed-off-by: Rosemarie O'Riorden <[email protected]> I'll continue reviewing the rest of the patch today. Regards, Dumitru _______________________________________________ dev mailing list [email protected] https://mail.openvswitch.org/mailman/listinfo/ovs-dev
