Search Mailing List Archives


Limit search to: Subject & Body Subject Author
Sort by: Reverse Sort
Limit to: All This Week Last Week This Month Last Month
Select Date Range     through    

[mininet-discuss] Link creation time

Sukhbir Singh sukhbir.in at gmail.com
Thu Apr 10 15:32:17 PDT 2014


Hi Bob,

* Bob Lantz:

> This is something that certainly worth looking at. We should be able to
> create 1000s of links in a second, but currently it's dog slow. This problem
> is definitely fixable but it requires effort by some enterprising folks. ;-)

That would be amazing! I am quite interested in doing this.

> I think we need async link and switch creation; we can also batch link
> creation and/or extend mnexec to create links. I think we will also find that
> there are some kernel issues (for example a hard timeout or sleep on link
> creation) that need to be fixed.

I tried asynchronous switch creation (OVSSwitch) and I think it is working
fine; I can start 100 switches in under two seconds (note: start, not add. add
already seems to be doing a fairly decent job). I had be happy to submit a pull
request once I have tested it and perhaps you can have a look to confirm?  For
the record, I am not doing anything fancy, just using multiprocessing to
parallelize the switch creation. (I asked Ben in a thread on ovs-discuss and he
told me that the bottleneck is Mininet and not OVS, so I decided to try this.)

> One thing that puzzles me is that in my own experiments I can create tons of
> links very quickly, but it seems to be slower in the context of Mininet,
> which is puzzling. I don't think we're sleeping or timing out, although we
> used to do that. Further investigation is definitely required.

By the experiments, do you mean calling `ip link add' manually and not using
Mininet? If that is the case, then this is a good lead.

> Since Mininet startup shows only about 10% system utilization, that means
> that we're idling 90% of the time, and we should be able to improve startup
> speed by a factor of 10 or so, even on a single CPU, so it's very clear that
> we have only scratched the surface of performance improvement.

Yup. I feel a lot can be done here. In my other experiments with this
(trying-to-make-Mininet-faster), I tried to parallelize clean.py. It does seem
to work but there were certain "weird" error messages. But hey, it does clean
up ... parallely!

So, any suggestions for the above (link creation)? I can submit a pull
request if that works better.

-- 
Sukhbir


More information about the mininet-discuss mailing list