[ovs-dev] [overload 7/7] ofproto: Drop flows from datapath more quickly under heavy load.

Ben Pfaff blp at nicira.com
Thu Oct 7 23:52:14 UTC 2010


On Thu, Oct 07, 2010 at 10:49:12AM -0700, Ben Pfaff wrote:
> On Thu, Oct 07, 2010 at 01:31:58AM -0700, Justin Pettit wrote:
> > I'm a bit concerned that the overall approach seems a bit aggressive
> > for ejecting flows.  I'd think we'd want a rule reserve that's higher
> > than 100 flows--and then only enforce it if the system is under high
> > flow creation load.
> 
> I'm happy to push it up to 1000 flows, if you like.
> 
> > In the implementation, it seems like if most of the flows fall into a
> > single bucket (and it's not the "really recently used" zero-ith
> > bucket), then all the flows could be ejected.  For example, if there
> > are one thousand flows installed that are all roughly 500ms old, then
> > won't they all get ejected since all flows are in bucket 5?  The
> > comment indicates that at least 100 flows are always maintained, but
> > that only seems to be true if there are 100 flows are less.
> 
> If the first nonempty bucket has at least as many flows as the number to
> be kept, then every flow in that bucket will be kept.  This means that
> flows that are truly frequently used (at least one packet every 100ms)
> will always be kept.  This is the intent, anyhow; please do take another
> look to verify that this is also what is implemented.

Justin pointed out that my intent didn't match the implementation.  I
changed the implementation to match the intent, changed the floor for
flows to 1000, and pushed this out.




More information about the dev mailing list