This is a pretty extreme situation.  OVS isn't optimized for it.  You
might need to adjust the code in ofproto-dpif-upcall.c by hand to tune
for it.  If you come up with some changes that improve performance and
are unlikely to substantially negatively affect performance in more
common situations, then we'd be grateful to have the patches.

On Thu, Jun 27, 2019 at 10:38:20AM +0800, txfh2...@aliyun.com wrote:
> Dear Ben:
>     sorry for my mistake, yes the fdb entry max limit is 1000k.
>     I have found in my test, when the test pkt flow num beyond 200k, 
> throughput
> declines as the kernel flow limit is 200k.the revalidator threads will delete
> kernel flow entry to remain flow size below 200k, am i right?
>      But even if i have set the flow-limit to 500k, i have found the kernel
> flow num would also declines to around 200k after a few minutes. i donot know
> the reason. i have read the "revalidatorwhat" slide(2014 ovs conf) but still
> cannot get the clue.
>     Thanks for your reply.
> 
> TIMO
> 
> ---Original---
> From: "Ben Pfaff"<b...@ovn.org>
> Date: Wed, Jun 26, 2019 23:11 PM
> To: "txfh2007"<txfh2...@aliyun.com>;
> Cc: "ovs-discuss"<ovs-discuss@openvswitch.org>;
> Subject: Re: [ovs-discuss] [HELP]Question about fdb entry size
> 
> On Wed, Jun 26, 2019 at 09:18:12PM +0800, txfh2007 via discuss wrote:
> >     I have a question about ovs fdb entry size &&
>  aging time. I have found the
> >
>  max fdb entry size is hard coded in  mac_learning.c, that max_entries is 
> 100k,
> > the longest aging time is 3600s.
> > 
> >   But in my test environment on which pkt forwarding is based on OVS normal
> > action, and my test center could generate about 200k flow simultaneously.  
> > So
> > the performance is effected by max entry size(there shoud be fdb entries
> > evicted by new pkts), So can we enlarge the max_entries limitation, and what
> > is the side effect?
> 
> It looks to me like the maximum is 1 million:
> 
> /* Sets the maximum number of entries in 'ml' to 'max_entries', adjusting it
>  * to be within a reasonable range. */
> void
> mac_learning_set_max_entries(struct mac_learning *ml, size_t max_entries)
> {
>     ml->max_entries = (max_entries < 10 ? 10
>                        : max_entries > 1000 * 1000 ? 1000 * 1000
>                        : max_entries);
> }

_______________________________________________
discuss mailing list
disc...@openvswitch.org
https://mail.openvswitch.org/mailman/listinfo/ovs-discuss

Reply via email to