[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