On Wed, Jun 10, 2015 at 11:53:47PM -0700, Ben Pfaff wrote:
> I want to report progress I've made tonight on an extended form of the
> OVS sandbox that I expect to be useful for testing OVN.  The main point
> of the extension is to make it easy to start up multiple sandboxed
> instances of OVS and then connect them together.
> 
> What I have is at:
>         https://github.com/blp/ovs-reviews/tree/ovn-sandbox
> 
> Please don't bother to review it; the code and its history is a mess.
> But I want to demonstrate some of the potential.  If you check this out
> and build, then run a command like this (assuming that you keep your
> build directory as a subdirectory of your source directory as I do;
> otherwise adjust the path on --init):
> 
>         utilities/ovs-sandbox --ovn --init=../ovn/sbtest

If you use something like the following instead of the script from my
previous email , you get a 50 "hypervisor" simulated scale test (on my
laptop it starts in 3 seconds!):

    net_add n1
    ovn-nbctl lswitch-add br0
    for i in `seq 50`; do
        (sb_add hv$i
        ovn_attach n1 hv$i br-phys 192.168.0.$i
        as hv$i ovs-vsctl add-port br-int vif$i -- set Interface vif$i 
type=dummy external-ids:iface-id=lp$i) &
    done
    for i in `seq 50`; do
        xx=`printf %02x $i`
        ovn-nbctl lport-add br0 lp$i
        ovn-nbctl lport-set-macs lp$i f0:$xx:$xx:$xx:$xx:$xx
    done
    wait

I can push it to 200 simulated hypervisors if I give it a couple of
intermediate wait points, like this:

    net_add n1
    ovn-nbctl lswitch-add br0
    for i in `seq 200`; do
        (sb_add hv$i
        ovn_attach n1 hv$i br-phys 192.168.0.$i
        as hv$i ovs-vsctl add-port br-int vif$i -- set Interface vif$i 
type=dummy external-ids:iface-id=lp$i) &
        if test $i = 50 || test $i = 100 || test $i = 150; then wait; fi
    done
    for i in `seq 200`; do
        xx=`printf %02x $i`
        ovn-nbctl lport-add br0 lp$i
        ovn-nbctl lport-set-macs lp$i f0:$xx:$xx:$xx:$xx:$xx
    done
    wait

When I do that, it takes about 25 seconds to start and some of the ports
fail to come up.  Maybe this is our first scaling bottleneck.  You can
watch the straggling ports come up if you run a command like this:

    watch 'for i in `seq 200`; do if test `ovn-nbctl lport-get-up lp$i` != up; 
then echo $i; fi; done'

but after waiting for a minute or more I still see about 10 ports that
aren't coming up.

(Even with 200 simulated hypervisors I'm still seeing an 85% idle
system.  Our daemons have a slow idle!)
_______________________________________________
dev mailing list
dev@openvswitch.org
http://openvswitch.org/mailman/listinfo/dev

Reply via email to