[ovs-discuss] Openvswitch performance problem

Ben Pfaff blp at nicira.com
Tue May 31 17:28:55 UTC 2011


Your setup sounds fine.

My experiment used minimum-length TCP flows.  In different tests, they
were to ports that had no listener or that did have a listener that
closed each new connection immediately.  So they only had one packet
in each direction, or only a few, respectively.  Every connection used
a different source/dest port combination.

My test maintained a sort of window on connection attempts.  At most N
connection attempts were allowed to be outstanding at a given time.
When one completed (succeeded or failed) another one would start.  If
your test instead sends all of the packets together in a clump, then I
would expect that you would lose some packets.

On Tue, May 31, 2011 at 07:03:42PM +0200, Jose Luis Franco Arza wrote:
> I am using the kernel version of OpenVswitch following the instructions
> explained in the installation file. First of all installing the module, then
> adding the datapath, the interfaces and finally executing the ovs-openflowd
> command with the datapath and the ip of the nox controller to stablish the
> connection.
> When I tried to test the OpenVswitch I just stopped the nox controller
> process and I installed the following entry in the flow table:
> 
> sudo ovs-ofctl add-flow dp1 "in_port=1 nw_src=* nw_dst=* idle_timeout=500
> action=output:2"
> May 27 21:46:27|00191|ofp_util|INFO|normalization changed ofp_match,
> details:
> May 27 21:46:27|00192|ofp_util|INFO| pre: wildcards=  0x3820fe  in_port=
> 1  dl_src=00:00:00:00:00:00  dl_dst=00:00:00:00:00:00  dl_vlan=    0
> dl_vlan_pcp=  0  dl_type=     0  nw_tos=   0  nw_proto=   0  nw_src=
> 0  nw_dst=         0  tp_src=    0  tp_dst=    0
> May 27 21:46:27|00193|ofp_util|INFO|post: wildcards=  0x3ffffe  in_port=
> 1  dl_src=00:00:00:00:00:00  dl_dst=00:00:00:00:00:00  dl_vlan=    0
> dl_vlan_pcp=  0  dl_type=     0  nw_tos=   0  nw_proto=   0  nw_src=
> 0  nw_dst=         0  tp_src=    0  tp_dst=    0
> 
> Every packet comming from port one would go out by the port 2. After that I
> started the pktgen program to generate the traffic and I did several
> experiments changing the packet rate and the results obtained were the ones
> of the graphics I attached.
> The only difference could be the line I commented in the connmgr.c file, but
> I also tried few experiments without it commented and the results were the
> same.
> You told that you were able to forward around 200,000 flows/sec through the
> OpenVSwitch, didn't you?Were you changing also the udp port per packet or
> another field?though that shouldn't have any repercussion, no?
> 
> Thank you for your help,
> 
> Regards
> 
> 2011/5/31 Ben Pfaff <blp at nicira.com>
> 
> > On Sat, May 28, 2011 at 06:50:25PM +0200, Jose Luis Franco Arza wrote:
> > > I have been doing a small research about how many flows per second could
> > > handle the NOX controller and the surprise was that the bottleneck was in
> > > the OpenVSwitch.
> > > When trying to install 20000 flows (modifying the UDP port number per
> > packet
> > > sent) after reaching the rate of 2000 packets per second then the
> > > ovs-openflowd wasn't able to handel all the income packets and it started
> > to
> > > appear packet lost.
> >
> > Are you using the kernel or userspace version of the switch?  If you
> > are using the userspace version, perhaps it would behave this poorly.
> > The userspace version is just for quick-and-dirty ports and simple
> > testing.  It is not a production switch.  I have not tested its
> > performance.
> >
> > The kernel version of the switch should perform much better than
> > this.  If I recall correctly, my own test results from last year
> > were closer to 200,000 unique flow setups per second.  If you are
> > using the kernel version of the switch and only get 2,000 per second,
> > then something is seriously wrong.
> >
> > What is in your OpenFlow flow table?  How many flows, and what
> > wildcards do they have?
> >
> > > So, I decided to try withot the existance of the NOX controller
> > installing a
> > > unique flow that would forward every packet in through the output port
> > using
> > > the wildcards. And the results said that the openvswitch is not able to
> > > handle more than 2000 flows/sec.
> >
> > That doesn't make sense.
> >
> > P.S. You aren't running both ovs-openflowd and ovs-vswitchd, are you?
> > Sometimes people make that mistake.
> >

> _______________________________________________
> discuss mailing list
> discuss at openvswitch.org
> http://openvswitch.org/mailman/listinfo/discuss




More information about the discuss mailing list