Search Mailing List Archives
[mininet-discuss] Link creation time
rlantz at cs.stanford.edu
Thu Apr 10 21:26:26 PDT 2014
Code/pull requests are good - then we can build on each other's work and also discuss things more.
Usually there's a lot of work between a proof of concept and something that works in all cases, but getting the ball rolling is a good idea.
On Apr 10, 2014, at 3:32 PM, Sukhbir Singh <sukhbir.in at gmail.com> wrote:
> 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.
More information about the mininet-discuss