[ovs-dev] [PATCH] ovn-controller: Optimize processing for non-local datapath without patch ports.

Ben Pfaff blp at ovn.org
Wed Mar 30 21:01:17 UTC 2016


On Tue, Mar 29, 2016 at 12:26:18PM -0700, Han Zhou wrote:
> For non-local datapaths, if there are no patch ports attached, it
> means the lflows and port bindings would never be needed on the
> Chassis. Since lflow_run() and physical_run() are the bottlenecks,
> skipping the processing for such lflows and port bindings can save
> significant amount of CPU, at the same time largely reduce the
> number of rules in local openflow tables. This is specifically
> useful when most of the lswitches are created for bridged networks,
> where logical router is not used.
> 
> Test precondition:
> 2k hypervisors, 20k lports, 200 lswitches (each with a localnet
> port).
> 
> Test case:
> step1: add 50 hypervisors (simulated on 1 BM with 40 cores), and
>        wait for flow updates complete on all new hypervisors.
> step2: create a lswitch and a localnet port, create and bind 100
>        lports evenly on these hypervisors. Repeat this 5 times.
> 
> Before the change:
> Step1 took around 20 minutes.
> Step2 took 936 seconds.
> 
> After the change:
> Step1 took less than 1 minute: 20x faster.
> Step2 took 464 seconds: 2x faster.
> 
> Signed-off-by: Han Zhou <zhouhan at gmail.com>

This seems very reasonable to me.

Can you think of a way to test this?



More information about the dev mailing list