[ovs-git] [openvswitch/ovs] c4f326: ovn-controller: Optimize processing for non-local ...
noreply at github.com
Wed Mar 30 23:22:56 UTC 2016
Author: Han Zhou <zhouhan at gmail.com>
Date: 2016-03-30 (Wed, 30 Mar 2016)
ovn-controller: Optimize processing for non-local datapath without patch ports.
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.
2k hypervisors, 20k lports, 200 lswitches (each with a localnet
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>
Signed-off-by: Ben Pfaff <blp at ovn.org>
More information about the git