On Thu, Jun 23, 2016 at 01:56:59PM -0400, Hui Kang wrote:
> 
> Hi,
> In our scalability test for OVN, we observed an in-scalable behaviour of
> the
> ovn-northd process: the time binding a logical port increases as # of large
> port increasing, regardless of whether logical ports belong to the same
> logical
> switch. The most suspicious function in causing this issue is build_ports()
> called by ovnnb_db_run() [1], as described below.
> 
> Test description:
>     step 1: Create 6 logical switches. For each logical switch, create 200
>             logical ports.
>     step 2: Bind 200 lports from each logical switch on an OVN chassis.
> 
> Test results for step 2:
> 
>     # of ports  |  # of ovn_ports            |  Cpu cycle spent in       |
>                 | allocated in build_port()  | built_port(), in million  |
>             200 |                        200 |                     25    |
>             400 |                        400 |                     50    |
>             600 |                        600 |                     75    |
>             800 |                        800 |                     93    |
>            1000 |                       1000 |                    108    |
>            1200 |                       1200 |                    125    |

I'm surprised that this is expensive for so few ports.  I believe that
build_ports() runs in O(n) time where n is the larger of the number of
ports in the northbound and southbound databases.  Does anyone see
anything that would cause quadratic or more regressive behavior there?
_______________________________________________
dev mailing list
dev@openvswitch.org
http://openvswitch.org/mailman/listinfo/dev

Reply via email to